Problème de structure de base de donnée - SQL/NoSQL - Programmation
Marsh Posté le 07-03-2009 à 10:30:20
Je suis pas un expert en modélisation mais ce que tu as comme idée ne va pas du tout.
Citation : - Faire 1 table par enveloppe |
Et si un jour on vient te dire que l'année prochaine il y aura plus de 100 enveloppes différentes...? puis celle d'après 5. Etc. Pas très souple...
Citation : - Faire 1 table pour les enveloppes "normales" (où j'attribue un ID à chaque enveloppe) et une table pour chacune des 2 enveloppes "particulières" + une table qui fait le lien entre l'ID de l'enveloppe et son nom "humain" |
Les enveloppes normales et particulières sont-elles si différentes ? Si oui , y'a t'il des caractéristiques qui les rapproche ?
Il faudrait vraiment que tu jettes un coup d'oeil sur un cours de modélisation...
Marsh Posté le 07-03-2009 à 10:36:32
Salut,
Les seuls points communs c'est qu'il y a une colonne "montant".
Le problème c'est qu'à part avoir plusieurs tables, je vois pas du tout comment faire.. On en parlant autour de moi on m'a dit que la 2ème option est probablement la meilleure parce qu'elle minimise le nombre de tables, je vais donc partir sur cette voie là..
Ceci dit si quelqu'un a mieux je suis preneur (au pire je changerai par la suite)
Marsh Posté le 21-03-2009 à 01:50:04
les 2 propositions ne sont pas très "propres"... En tout cas, la première est à exclure!
Ce que tu souhaites, c'est du HIGH LEVEL en conception.
Vite fait, je le vois comme ça :
- TypeEnveloppe[id_TypeEnv, Libelle] --> (1:Normal, 2:Spé1, 3:Spé2)
=> permet d'ajouter d'autre type d'enveloppe dans le temps
- Enveloppe[ id_Env, id_Groupe_de_recherche, year, id_TypeEnv, MontantBase, ??MontantUtilise??à voir ]
=> Permet de créer la base de tout type d'enveloppe pour tous les groupes de recherches pour une année donnée
- EnveloppeColonne [id_EnvCol, id_Env, year, Libelle, TypageColonne]
=> permet de créer tout type de structure pour une enveloppe donnée pour une ANNEE donnée
- GroupeRecherche[id_Groupe_de_recherche, Libelle]
=> Permet de creer des groupes de recherche
- GroupeRechercheEnveloppe[id_Groupe_de_recherche, id_Env]
=> Permet la liaison n:m entre groupe & enveloppe => dans le cas ou un jour une enveloppe spéciale serait à partager avec 3 groupe de recherches au lien de la totalité des groupe
- Data : Table qui stocke en ligne les données
avantage de ne pas utiliser de place lorsque certaines colonnes ne sont pas utilisées...
Ensuite créer des vues de bases pour reconstruire les tables d'enveloppe à structures variables.
En esperant que cela puisse t'ouvrir l'esprit à la conception avancée... des cas tordus! :-)
Marsh Posté le 21-03-2009 à 12:34:24
Mmmm ... c'est très intéressant et j'avais pas considéré ça comme ça
Par hasard tu aurais pas une référence qui expliquerait "rapidement" ce genre de structure ? (Je par rapidement j'entends "Pas un bouquin de 1500 pages sur Merise "
Marsh Posté le 06-03-2009 à 19:22:36
Bonjour,
Je dois créer un outil extrêmement simple pour la comptabilité de l'institut où je bosse et je ne suis pas trop sûr de comment structurer la base de donnée, je fais donc appel à vous.
Donc l'institut distribue en début d'année à chaque groupe de recherches une "enveloppes" contenant l'argent qu'il pourra dépenser pour acheter/réparer du matériel scientifique. De plus, l'institut a 2 enveloppes "spéciales" qui sont partagées entre tous les groupes de recherche et qui représentent les fonds qui sont disponibles pour des événements inter-groupes (conférences, voyages, ... ) ces 2 enveloppes possèdent une structure différente des autres. Chaque fois qu'une dépense est faite, elle est consignée et son montant est soustraite de l'enveloppe correspondante.
On me demande de mettre en place tout ça sous la forme d'une page web qui viendra s'intégrer dans la plate-forme que je développe pour cet institut.
Les 2 idées que j'ai en tête sont :
- Faire 1 table par enveloppe (ça fera une 20ène de tables qui contiendront au max une centaine d'entrées chacune, à vue de nez)
- Faire 1 table pour les enveloppes "normales" (où j'attribue un ID à chaque enveloppe) et une table pour chacune des 2 enveloppes "particulières" + une table qui fait le lien entre l'ID de l'enveloppe et son nom "humain"
Qu'est-ce qui est mieux selon vous ? Bien sur si vous avez de meilleures idées je suis preneur
Merci d'avance
---------------
Si la vérité est découverte par quelqu'un d'autre,elle perd toujours un peu d'attrait