Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Access > Modélisation
Modélisation Le forum qui vous aide à résoudre vos questions relatives à la modélisation (tables et relations) de votre base de données sous Access. Pour les états et les formulaires, postez dans le forum IHM.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/11/2010, 19h24   #1
Invité régulier
 
Inscription : août 2009
Messages : 140
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 140
Points : 9
Points : 9
Par défaut Conseil de conception

Bonjour,

Je développe actuellement une application sous VB2008 se servant intensivement de tables de données.
Afin qu'elles que les modifications sur ces tables restent sauvegardables après fermeture de l'appli, j'ai décidé de mettre ces tables dans un fichier externe au lieu de built-in. Access m'a paru tout indiqué pour ça.

Maintenant que j'ai mis toutes mes tables dans mon fichier Access, mon appli VB.Net les charge toutes en mémoire au démarrage, ca prends déjà quelque secondes alors que je ne fait que commencer...
Mais après le chargement initial, pas de problemes c'est "fluide".

Je me suis donc dit que si je cherchait à "optimiser" mes tables Access, le chargement serait peut être + rapide ? et en effet il y a un bouton "Analyse des performances" qui m'a permis de trouver où mettre des indexs, clés primaires et autre relations...

Je n'ai pas l'impression que cela ait changé un kopeck au chargement de mon appli...
Les relations et autres contraintes importées compliquent enormément mon implémentation de listes déroulantes sur certains champs par exemple...

Ma question est, d'un point vue conception, cela en vaut-il la peine que je passe un mois supplémentaire à apprendre access afin de maitriser un minimum les relations et autres contraintes ?
Ou le + simple reste de laisser mes tables telles quelles, sans relations ni quoi que ce soit, et me contenter d'un chargement de mon appli de 30secs ?
Masamunai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 19h39   #2
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 605
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 605
Points : 30 943
Points : 30 943
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Bonjour

Une conception solide est un gage à long terme d'une bonne stabilité et d'une amélioration plus facile.

Si tu nous expliquais ton schéma, cela permettrait aux membres du forum de te donner un coup de main.

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 19h54   #3
Expert Confirmé Sénior
 
Avatar de f-leb
 
Homme Fabien
Enseignant
Inscription : janvier 2009
Messages : 2 404
Détails du profil
Informations personnelles :
Nom : Homme Fabien
Âge : 41
Localisation : France, Sarthe (Pays de la Loire)

Informations professionnelles :
Activité : Enseignant

Informations forums :
Inscription : janvier 2009
Messages : 2 404
Points : 4 427
Points : 4 427
bonjour Masamunai, Philippe,

je connais à peine VB.Net mais ...

Citation:
Envoyé par Masamunai Voir le message
Maintenant que j'ai mis toutes mes tables dans mon fichier Access, mon appli VB.Net les charge toutes en mémoire au démarrage
Je sais qu'on peut "se connecter" à une base de données mais par contre qu'entends-tu par "charger en mémoire" ?
f-leb est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/11/2010, 21h00   #4
Invité régulier
 
Inscription : août 2009
Messages : 140
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 140
Points : 9
Points : 9
Pour f-leb:

Mon appli vb.net "charge" les données de ces tables dans des objets VB.NET appelés DataTables, lesquelles peuvent etre utilisées par l'appli quand j'y fait appel via des instructions. Cela signifie que mon appli travaille en mode "déconnecté" après le chargement de toutes les tables de mon fichier Access, puis se reconnecte à la fermeture de l'appli si et seulement si une ou des datatables ont subi des modifications, pour finalement se déconnecter de nouveau.

Pour Philippe :

Qu'est ce que tu entends par "schéma" concretement ? une capture d'ecran de la page des Relations ? ou autre chose ? (je demande pour pouvoir repondre precisement a ta question)

EDIT: je vais toujours donner quelques éléments de réponse :
Mon Appli est en fait une sorte de formulaire à 3 "volets":
- le 1er est l'interface principale (cf. piece jointe) qui permet à l'utilisateur de comparer 2 "sets", chacun construit à partir de comboboxs dont les listes déroulantes se basent sur les données des tables Access (+ filtres built-in si besoin est)
- le 2e est un conteneur a onglets, chaque onglet contenant affichant une des tables Access. Chaque table affichée est modifiable. Il y en 18 avec 35-40 champs. 3 ont + de 500 enregistrements.
- le 3e suit le même principe que le 2e, sauf que les tables affichées sont + "techniques" (pour connaisseurs only). Ces tables proviennent également de la base Access. Toutes sont de petite taille.
Lorsque je dis que les Tables sont "modifiables", c'est par l'intermediaire de mon interface .net, car l'utilisateur n'aura pas forcement le logiciel Access installé, alors qu'un executable fonctionnera partout.
Concretement cela signifie, entre autres, qu'il faut que je convertisse certains de mes champs sous forme de listes déroulantes, lesquelles prennent leurs valeurs sur une des tables dites "techniques". La question que je me pose alors pour ce probleme precis: je fait mes listes déroulantes sous Access, puis je croise les doigts que mon appli VB.NET me les importera niquel telles quelles, avec toutes les contraintes/requetes/relations qui vont avec ? ou alors ca foutrait trop le schmilblick et vaudrait mieux que j'importe mes tables "nues" puis convertir mes champs en listes déroulantes sur VB2008 ?
Il y a surment d'autres problemes inhérents à la conception, telles que les champs à NULL interdit ou autres dont je n'ai pas encore idée...

En bref, je pense (mais je peux me tromper) que si j'evite à mon appli des instructions de SGBD, il s'en retrouvera + "léger" à l'utilisation ? (en gardant a l'esprit que l'utilisateur n'aura que le .exe + le .accdb, rien d'autre)
Masamunai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 04h15   #5
Rédacteur/Modérateur
 
Avatar de Philippe JOCHMANS
 
Homme Philippe JOCHMANS
Développeur informatique
Inscription : mai 2005
Messages : 17 605
Détails du profil
Informations personnelles :
Nom : Homme Philippe JOCHMANS
Âge : 44
Localisation : France, Loir et Cher (Centre)

Informations professionnelles :
Activité : Développeur informatique
Secteur : Communication - Médias

Informations forums :
Inscription : mai 2005
Messages : 17 605
Points : 30 943
Points : 30 943
Envoyer un message via MSN à Philippe JOCHMANS Envoyer un message via Skype™ à Philippe JOCHMANS
Re

Oui je voulais parler de la fenêtre relation.

Le fait que tu charges les tables dans ton application me fait penser que ce n'est plus un problème Access, mais VB.net (dans ce cas ce n'est pas le bon forum).

Cependant ce forum peut t'aider pour les tables.

Philippe
__________________
Détaillez vos questions, sinon vous aurez des réponses erronées et vous irez tout droit dans le et lisez les règles sinon
Si vous pensez commencer sans un livre, oublier : livres pour débuter
Vous pouvez consulter mes articles sur Access et PowerPoint
Le blog Office.

Inutile de m'envoyer un MP pour des questions techniques ou de me relancer , je n'y répondrais pas.
Philippe JOCHMANS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/11/2010, 12h28   #6
Invité régulier
 
Inscription : août 2009
Messages : 140
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 140
Points : 9
Points : 9
Bonjour Philippe

Oui en effet c'est toute la question justement entre Access ou VB.NET.

Pour resumer j'ai 2 possibilités :

A. Soit je considere mon fichier Access comme un simple fichier de stockage. Dans ce cas, je vais rendre ses tables non-modifiables autrement que par l'appli vb.net, et les tables n'auront aucune relation entre elles, juste stockées telles quelles. Mes colonnes calculées ou autres champs à combobox devront etre tous implémentés dans mon appli. Idem pour les contraintes de champs et relations.

B. Soit je build un super fichier Access blindé avec toutes les relations/contraintes, tous les champs de mes tables vérifiés s'il faut une combobox, une valeur numeric ou texte, etc... et champs calculés tous prêts.
Là normalement quand mon appli chargera les tables, il chargera aussi les relations/contraintes et le reste (mais je n'en suis pas sûr).

Entre les 2 options, on voit que l'option A aura pas mal d'instructions à faire dans l'appli (et sera aussi plus "lourd" à l'utilisation) mais le chargement devrait être assez rapide (?).
En revanche, l'option B "laisse la main" au designer de VB2010 qui devrait mettre chaque chose à sa place automatiquement lors de l'importation au chargement de l'appli. Du coup, j'aurai presque pas grand chose a coder et l'appli a priori devrait fonctionner de façon + "fluide" (?).

Si vous me conseillez l'option B, je serai dans le bon forum, sinon je retourne au forum VB.NET lol.

EDIT: ci-joint les relations, je précise que je suis débutant est que ces relations paraitront surement du grand "n'importe quoi" mais au moins elles montrent quels champs sont liés. Je précise aussi que l'optimiseur automatique de relations m'a mis des indexs je ne sait où partout...

EDIT2: je viens de tester, VB2010 importe effectivement les relations, les indexs et clés primaires, les types de données de chaque champ, et je peux aussi lui demander les "vues" mais là je ne vois pas trop à quoi elles pourraient me servir et je n'en ai pas fait sous access de toutes façons :s
Pour vous donner une idée du temps de chargement de toutes ces tables au démarrage de mon appli (+ le code gérant l'interface screenshotée post précédent), ca prends 15 bonnes secondes. Imaginez quand je vais commencer a coder le "core" de l'appli...
Masamunai est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/11/2010, 10h02   #7
Membre Expert
 
Inscription : avril 2006
Messages : 1 050
Détails du profil
Informations forums :
Inscription : avril 2006
Messages : 1 050
Points : 1 230
Points : 1 230
Bonjour,
.Net comme Java sont des environnements autorisant le multithreading.
Ici, utiliser un backgroundworker pour charger les données est envisageable.
Peut-être aussi, serait-il mieux de ne charger en mémoire que ce qui est utile à un instant t.
ilank est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 19h42.


 
 
 
 
Partenaires

Hébergement Web