|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : mai 2005 Messages : 17 ![]() |
Bonjour tout le monde
J’ai modélisé une base de données à l’aide de Merise. Utilisant la notion de généralisation / spécialisation (hiérarchie), certaines de mes entités spécialisées (filles) ne contiennent aucun attributs. Je me suis d’abord demandé si cette représentation était correcte, puis en générant le code à l’aide de Dbmain, je me suis aperçu que les tables créent à partir de ces entités (spécialisées sans attribut et avec une contrainte de partition (totalité et d’exclusion)) n’avaient aucun attribut. Ex : Entité générale personne (prenom, nom, age, sexe) Entités spécialisées ----> ami (annee_rencontre) ----> connaissance () ----> famille (membre, lien_parente) Avec une contrainte de partition, j'obtiendrai une table connaissance sans atrtribut (sous DBmain). Une table sans aucun attribut ça n’a aucun sens, mais j’ai réellement besoin d’utiliser cette notion de généralisation / spécialisation. # Dois-je ajouter la clé de la table personne dans les tables filles (ce que ne fait pas DMmain lorsque il y a une contrainte de partition) ? Je ne sais pas trop comment m'y prendre donc si quelqu'un a un conseil, ça serait sympa, merci. |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() |
Salut,
Je n'ai jamais utilisé Merise donc mon avis est basé sur la conception de bases de données en général. L'existance de tables sans attributs n'est pas une erreur de même que si la table n'existe pas cela ne sera pas une erreur. Si tu gardes la table connaisance() ton schéma sera plus lisible et plus facile à expliquer. Par conséquent, je pense que pendant la programmation de la BD ça t'évitera quelques confusions que tu puisses faire. Quand il y a des généralisations, il faut que les tables filles aient la même clé que la table mère, donc, si DbMain ne le fait pa, tu devrais peut-être les ajouter. |
|
|
00
|
|
|
#3 |
|
Membre habitué
![]() Inscription : février 2006 Messages : 118 ![]() |
Je suppose que le but de ta base de données c'est quand même de pouvoir dresser la liste des "connaissances".
Pour que ce soit possible je vois 2 possibilités: 1) les enregistrements de "personne" contiennent un attribut donnant cette information. 2) La table connaissance contient les id de "personne". Dans le 1er cas, alors tu ne pourras jamais avoir une personne faisant partie à la fois de "famille" et de "ami", ce qui je suppose n'est pas l'idéal. Bref, moi je pense que le mieux c'est de mettre une FK dans les tables filles. Je pense d'ailleurs que c'est indispensable si on veut pouvoir affirmer qu'une personne est bien une "connaissance". J'espère ne pas me tromper car j'ai assez peu utilisé ce type de lien. |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : mai 2005 Messages : 17 ![]() |
Merci, c'est quelques conseils me suffisent pour régler mon problème.
Merci d'avoir pris de votre temps |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com