Que pensez-vous de ceci, particulièrement concernant l'héritage?
Que pensez-vous de ceci, particulièrement concernant l'héritage?
Bonsoir,
Sans la liste des règles de gestion des données, il est impossible de donner un avis.
Toutefois, le MLD comporte une erreur :
La clé primaire de Conduite_Gaz ne peut pas être le couple {id_conduite, id gaz} mais un des deux singletons {id_conduite} ou {id gaz}. Normalement il s’agit de {id_conduite}, auquel cas {id gaz} devient simplement clé alternée (ak).
Même principe évidemment pour l’eau et l’électricité.
(a) Faites simple, mais pas plus simple ! (A. Einstein)
(b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)
__________________________________
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
Modéliser les données avec MySQL Workbench
Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
Dans votre message Quel système de clé utiliser? vous décrivez la conduite de gaz comme étant fille de sa maman, la conduite. En réalité, au plan sémantique, une conduite de gaz est à une conduite ce qu’une ellipse est à une figure plane et je ne sache pas qu’une figure plane soit sa propre fille quand elle est considérée comme ellipse. Bref, une conduite, qu’elle soit de gaz ou d’eau est une conduite.Envoyé par thibouille
Par ailleurs, au niveau relationnel, deux tables comme Conduite et Conduite_Gaz peuvent avoir même clé primaire, sachant que l’une est en même temps clé étrangère : le Modèle Relationnel de Données a toujours considéré les concepts comme libres de toute contrainte ès matière (d’autant plus que le concept de clé primaire est désormais conservé à titre purement historique).
Personnellement, au niveau SQL (où l’on continue à utiliser le concept de clé primaire), j’ai tendance à considérer id_conduite comme clé primaire de Conduite_Gaz et id_gaz comme clé alternative : sous réserve bien entendu de justifier l’existence id_gaz, car si cet attribut n’aucune valeur ajoutée, il doit disparaître, au nom du rasoir d’Ockham (ne rien conserver d'inutile). Maintenant, si son existence est indispensable, personne ne vous dira rien si vous en faites une clé primaire (id_conduite devenant alors clé alternée).
(a) Faites simple, mais pas plus simple ! (A. Einstein)
(b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)
__________________________________
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
Modéliser les données avec MySQL Workbench
Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
mm j'aurais aimé lire ou entendre ce genre d'explications étant aux études (oui c'est un compliment )
Et ça me paraît évidemment logique maintenant que vous soulevez la chose.
Les clé alternées sont donc de trop comme vous le faites également remarquer.
Je vais me limiter récupérer une clé "primaire" identique à celle de Conduite.
Maintenant comment indiquer la chose sous Power AMC, je ne sais pas, je suppose qu'une "bête" référence dessus fera l'affaire, comme ci-dessous:
Quoi qu'il en soit, un grand merci
Envoyé par thibouilleLe MLD présenté a l’air tout à fait correct sur ce point.
Maintenant, il existe deux chemins collatéraux pour accéder aux instances de Tconduite à partir d'une instance de Tcompany :
— Un accès direct.
— Un accès via Tusers.
Une question à 34 centimes d’heuro la minute :
Les valeurs de Tcompany prises par l’attribut id_company de la table Tconduite peuvent elles être différentes de celles que l’on peut obtenir (transitivement) en passant par l’autre chemin ?
Peut-être est-il encore temps de les instruire ? ...Envoyé par thibouille
(a) Faites simple, mais pas plus simple ! (A. Einstein)
(b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)
__________________________________
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
Modéliser les données avec MySQL Workbench
Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
Vous ne pouvez pas savoir à quel point ce commentaire me rempli de joie
Tout dépend de la manière dont je traite les Tusers. Si un User peut être supprimé après qu'il ait ajouté une conduite, alors oui il faut absolument garder l'info quelque part qu'un conduite est gérée par une société en particulier.
Mais je pourrais supprimer la relation entre Tusers et TConduite. Je prends bien sûr l'info du User qui a ajouté la Conduite dans la BD mais je doute que cela soit tellement important. Ou alors garder un log complet des modifs, ça aurait plus de sens.
Si je veux autoriser un User à modifier une conduite il suffit de comparer id_company de Tuser et id_comany de TCompany et vérifier qu'ils concordent (ainsi que vérifier idTypeUser bien sûr pour être sûr qu'il s'agit bien d'un utilisateur qui possède de tels droits).
Ce sera plus clair sans cette relation superflue je pense.
Ne s'agit-il pas plutôt de comparer l'attribut id_company de Tuser et l'attribut id_company de Tconduite ?Envoyé par thibouille
(a) Faites simple, mais pas plus simple ! (A. Einstein)
(b) Certes, E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)
__________________________________
Bases de données relationnelles et normalisation : de la première à la sixième forme normale
Modéliser les données avec MySQL Workbench
Je ne réponds pas aux questions techniques par MP. Les forums sont là pour ça.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager