Membre émérite
Bonsoir,
Envoyé par
CinePhil
Votre MCD devient alors :
Document -0,1----être----(1,1)- Document_archivable
Les cardinalités 1,1 entre parenthèses signifient une identification relative, ce qui veut dire que, comme vous l'avez fait, l'identifiant du document archivable est celui du document. Mais on ne représente pas cette propriété au niveau du MCD. D'ailleurs, comme vous semblez avoir utilisé Looping, vous devriez alors représenter l'association avec l'outil d'héritage (le triangle)
Effectivement, ces 2 représentations sont équivalentes (avec à droite le MLD correspondant) :
Membre régulier
Si j'opte pour ce type de relation dans le cas où les documents archivable n'ont pas de propriété spécifique, je me retrouve avec un entité vide sur le schéma.
Modérateur
Si j'opte pour ce type de relation dans le cas où les documents archivable n'ont pas de propriété spécifique, je me retrouve avec un entité vide sur le schéma.
D'où ce que j'ai écrit :
Si L'entité-type document_archivable n'est associée à rien d'autre, l'association devient inutile et il suffit de mettre une propriété booléenne dans l'entité-type document pour dire s'il est archivable.
Mais notez bien qu'il y a deux cas :
- si l'entité-type document archivable n'a pas de propriété spécifique (une date d'archivage, une date de destruction, par exemple) ;
- ET si elle n'est associée à rien d'autre (une boîte d'archive, par exemple).
Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
Mon
ancien blog sur la conception des BDD, le langage SQL, le PHP... et mon
nouveau blog sur les mêmes sujets.
« Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
À la maison comme au bureau, j'utilise la suite Linux Mageïa !
Membre régulier
Oui, sans propriété et sans association.
En fait, j'étais d'accord avec Waldar
Envoyé par
Waldar
Les deux solutions sont correctes.
Le choix se fera si vous requêtez souvent cet attribut ou pas.
Si vous le manipulez souvent, laissez-le dans la table principale, sinon déportez-le dans une autre table, et encapsulez le tout dans une vue avec une jointure externe.
Il me semblait que les deux cas avaient des avantages différents :
Faire porter le booléen par la table demande moins d'opérations au SGBD mais peut avoir une charge en mémoire plus importante que de créer une table supplémentaire.
+ Répondre à la discussion
Cette discussion est résolue.
Discussions similaires
-
Réponses: 2
Dernier message: 24/03/2010, 09h11
-
Réponses: 1
Dernier message: 06/02/2010, 13h03
-
Réponses: 2
Dernier message: 25/05/2009, 09h10
-
Réponses: 3
Dernier message: 25/06/2008, 15h21
-
Réponses: 5
Dernier message: 23/06/2006, 12h14
Partager