Dilemme de nombre de tables dans Access

Résolu
sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention   -  
sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

Une question qui va peut être paraître simple pour certains.

Je souhaites créer une base de données qui contiendra... Beaucoup de données :)

Le principe : une fiche détaillée pour chaque personne, gérée dans Excel.

Il y a tellement de données à gérer qu'au bout de quelques jours d'utilisation, mon classeur Excel est passé à 10 Mo, d'où mon désir de migrer vers Access.

J'ai environ 100 personnes à gérer, chacune peut contenir jusqu'à 15 informations, et pour chaque information jusqu'à 50 sous informations.

Ma question : En simplifiant assez grandement, est ce mieux d'avoir une seule table (dont un enregistrement contiendrait nom_pers1, info1, sousinfo1_1,..., info2, sousinfo2_1,...) ou une table pour chaque personne ?

Après des milliers d'enregistrements, laquelle des deux solutions serait la moins lourde en poids ? Laquelle des deux serait la plus rapide à charger le détail d'une personne ?

Merci pour vos réponses.
A voir également:

5 réponses

asterix
 
Le découpage en plusieurs tables se fait sur la base des colonnes et non sur la base des lignes. Tu n'auras jamais une table par personnes, mais plutôt une personne répartie sur plusieurs tables.

Si tu pars d'un fichier Excel simple, je te conseil une seule table. Plusieurs table pourraient par exemple se justifier si tu gerais les historiques des adresses des personnes. Mais cela complique la conception de la base...
0
blux Messages postés 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Salut,

les informations et sous-informations gérées peuvent-elles être les mêmes ?
Ou d'une autre façon : une personne peut-elle partager une information/sous-information avec une autre ?
0
sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention   286
 
Allez, je vais essayer de passer un peu plus d'infos :

En fait, il s'agit d'agents dans un centre d'appels. Pour effectuer un suivi de la qualité, notre service interne effectue des écoutes.

Une écoute est faite sur un agent pour un projet spécifique, projet qui appartient à un pôle d'activités.

Une écoute se fait sur 50 critères maximum.

Donc oui, on va retrouver pour chaque agent des notes différentes, mais sur énormément de critères communs.

J'avoue que je suis également un peu perdu pour établir son merise, vous pourriez peut être m'aider ;-)
0
sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention   286
 
Et par exemple, est ce que d'après vous ce serait juste de créer une table "Ecoutes", qui contiendrait toutes les écoutes (agent écouté, personne qui effectue l'écoute, note critère 1, note critère 2, note critère 3, note critère 4, etc.....) ?
0
blux Messages postés 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
D'après ce que je lis, je verrais les tables suivantes :

- pole (numpole, nompole)
- projet (numprojet, nomprojet)
- agent (numagent, nomagent)
- ecoute (numecoute_auto,date,duree, auditeur,numprojet,numagent)
- notes (numnote_auto, numcritere, note,numecoute)

notes sera liée uniquement à écoute
écoute sera liée à notes, agent et projet

Mais après, il faut voir ce qu'on veut faire des informations qu'on traite...
0
sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention   286
 
Merci pour ce premier jet, ça m'a l'air déjà très intéressant.
Je dois etre capable de tout faire avec ces données : afficher un résumé par agent, par pôle, par projet, par agent par projet. Quand le formulaire est remplit, je suppose que je dois faire une requête SQL pour chaque table, idem pour afficher les résultats.
0
blux Messages postés 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
petite modif, projet est lié à pole, donc :

projet (numprojet, nomprojet,numpole)
0
sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention   286
 
lol oui, je l'avais déjà corrigé chez moi :)
0
sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention   286
 
Bon, j'ai établi mes tables selon une proposition de Merise, et je voulais voir si quelqu'un avait une autre idée, car dans ce contexte, on aurait pour, au maximum :

120 agents à écouter ;
20 écoutes par agent par mois, soit 2.400 écoutes par mois ;
50 critères à noter par écoute, soit 120.000 critères par mois.

Dans ce système, on aurait donc dans la table notes 120.000 lignes par mois, et dans la table ecoutes 2.400 lignes par mois.

Dans l'idéal, il me faudrait une base de données Access par année, mais là on atteint des chiffres astronomiques.

Quelqu'un pourrait me proposer une solution ? Je patauge un peu là... :/

Rappel du Merise :

- pole (numpole, nompole)
- projet (numprojet, nomprojet, numpole)
- agent (logagent, nomagent)
- ecoute (numecoute_auto,date, auditeur,numprojet,logagent)
- notes (numnote_auto, numcritere, note,numecoute)


Que pensez vous de concaténer ecoute et notes en faisant par exemple :
- ecoute (numecoute_auto,date, auditeur,numprojet, logagent, critere1, note1, critere2, note2, critereN, noteN)


Si votre problème est résolu, merci de clôturer le sujet en cliquant sur "Problème résolu".
Administrateur réseaux sous Windows Serveur 2003
0
blux Messages postés 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Ca ne va pas résoudre ton problème : tu auras moins de lignes, mais plus d'espace qui ne sert à rien, puisque tu devras créer 2 x colonnes par critère, qu'elles soient utilisées ou non...

Access sait gérer sans trop de problème des tables de plusieurs millions de lignes en restant en-deça de la taille limite du fichier .mdb fixée à 2 Go.

On peut peut-être simplifier en mettant les notes dans une chaine de caractère avec un positionnement qui est spécifique au critère...
0
sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention   286
 
Si je comprends bien, ce serait donc concaténer les deux chaines et faire un truc du style :

- ecoute (numecoute_auto,date, auditeur,numprojet, logagent, liste_criteres, notes_criteres)

Et des résultats qui s'inscrivent dans les deux dernières colonnes :

{crit1; crit2; crit3; ...; crit50} {note1; ;note3; ...; note50}

Ou même enlever liste_critères pour ne garder que les notes
0
blux Messages postés 27106 Date d'inscription   Statut Modérateur Dernière intervention   3 359
 
Oui, et comme je l'ai dit, ne garder que les notes, en considérant qu'une note est placée toujours au même endroit en fonction de son critère.

12;14;;15;18...

ici, critère3 n'a pas été évalué, sous-entendu que critère3 est le même pour toute écoute. Il suffit de rajouter une table qui nomme les critères de manière intelligible.

Ca peut tenir dans une chaine standard d'access (max 255 car), mais ça fera quand même un sacré paquet de traitement de manipulation de chaines, va falloir écrire des fonctions pour ça...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
sipherion Messages postés 1809 Date d'inscription   Statut Membre Dernière intervention   286
 
OK ca me va comme ça. Merci Blux pour ton aide.
0