Je l'avoue j'aime pas bien l'UML et la conception et toutes ces règles que je trouve complexes ... mais je compte avancer dans ce sens, car c'est important de maîtriser cette tache..
J'ai rencontré quelques problèmes avec les clé étrangères... c'est pour ça je vous demande de m'aider sur le plan de conception.
Voilà un petit modèle du problème, j'espère trouver des réponses.
Le problème dans ma conception c'est que: "depense" peut être liée à une voiture ou NON. (par exemple: depenses -> avance sur salaire, achat matériel informatique)
La différence entre les types de dépenses c'est que lorsque la dépense est en relation avec une voiture, il faut mettre immatriculation comme clé étrangère (faisant référence à la voiture) Sinon les dépenses ont les autres données en commun.
Ma conception initiale, qui est fausse (je trouve ):
Une autre conception, que pensez vous de ça?
Mettre une table avec des clés étrangères faisant référence aux clés primaires de voiture et dépenses. Si: depense = voiture alors: inserer into depenses & insert into depenses_voiture Sinon: insert into depenses
Pour la vidange, c'est juste pour noter les infos d'entretient concernant la voiture. (Kilométrage, détails: huile seulement OU huile + filtres ...) Ensuite les dépenses sont noté à part.
Si quelqu'un a une autre proposition, je serais ravi
La solution proposée par christouphe est celle qu'on utilise en générale lorsque l'on sait qu'on voit avoir plein de sorte de dépense à ajouter; modifier ou supprimer: on a juste à créer une nouvelle table et voila. La notion d'héritage est souvent modéliser ainsi
Après si tu n'a pas ce genre de contrainte, d'autres solutions sont possibles mais moins adaptable et donc moins maintenable
Par exemple, tu peux te contenter d'une seul table dépense avec une colonne "typeDepense" qui aura pour valeur "voiture", "informatique" ...
Ainsi pour choper une dépense de voiture, tu fais un where typeDepense="voiture" et le tour est joué
Après ça dépend de ton appli je dirai.
A priori la solution de christouphe est plus élégante mais en as tu vraiment besoin ?
Je pense que j'ai trouvé la solution... tout ce problème etait à cause de la clé étrangère. C'est une longue histoire...
Mais voilà: J'ai fait une table "depenses" avec clé étrangère immatriculation: valeur par defaut NULL. Si: c'est une dépense qui est en relation avec les voitures alors immaticulation=valeur Sinon: immatriculation=NULL
Je pense que ma slution est vraie, non?!
Question de conception de la base.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Keep It Simple Stupid - SF4 conf Swift - Cours 1/4 SF4 - Exceptions PDO - Formes Normales