par
moogli » 08 avr. 2013, 22:38
La parenté c'est indiquer qu'un tuple dépend d'un autre. On parle aussi d'auto jointure.
donc en clair dans une table tu as une clef primaire et une colonne du même type que la clef primaire nullable. lorsque tu insére un tuple tupeu mettre dans cette seconde colonne la clef primaire d'un autre tuple (tu peux comme indiquer qui sont les parents d'une personnes sans créer d'autre table

).
Le cas de base, une discution c'est deux personnes
le mcd peux être ainsi
Comme tu peux le voir mon mcd est "faux" car j'y mentionne l'idParent qui n'a rien a y faire. celui ci étant implicite par la relation
parenté.
C'est pour cela que tu ne vois pas de colonne "idemmeteur" ou "idreceveur" elles sont implicite avec les relations envoyer et recevoir.
au finale la table message contiendra idMessage, idEmmeteur,idDestinataire (oui je change pour indiquer que rien n'est figé

) message, dateMessage et idParent
Second cas une discutions c'est plusieurs personnes :
Par exemple
Même principe sauf que l'on créer une entité discutions avec un titre (bon tu peux mettre autre chose comme la date c'est pas mal aussi

).
ensuite la relation "appartenir" indique les messages qui appartiennent au file de discution.
cela se traduit par une colonne idDiscution dans la table message.
Pour sélectionner tous les messages d'un fil de discutions un simple select les champs from message where iddiscution=xxx, suffit
voila un exemple fonctionnel, après il faudrait une étude plus complète de ton problème mais globalement on peux faire un truc comme ça
@+
La parenté c'est indiquer qu'un tuple dépend d'un autre. On parle aussi d'auto jointure.
donc en clair dans une table tu as une clef primaire et une colonne du même type que la clef primaire nullable. lorsque tu insére un tuple tupeu mettre dans cette seconde colonne la clef primaire d'un autre tuple (tu peux comme indiquer qui sont les parents d'une personnes sans créer d'autre table ;)).
Le cas de base, une discution c'est deux personnes
le mcd peux être ainsi
[img]http://phpjungle.info/phpfrance/mido_mcd1.png[/img]
Comme tu peux le voir mon mcd est "faux" car j'y mentionne l'idParent qui n'a rien a y faire. celui ci étant implicite par la relation [b]parenté[/b].
C'est pour cela que tu ne vois pas de colonne "idemmeteur" ou "idreceveur" elles sont implicite avec les relations envoyer et recevoir.
au finale la table message contiendra idMessage, idEmmeteur,idDestinataire (oui je change pour indiquer que rien n'est figé ;) ) message, dateMessage et idParent
Second cas une discutions c'est plusieurs personnes :
Par exemple
[img]http://phpjungle.info/phpfrance/mido_mcd_2.png[/img]
Même principe sauf que l'on créer une entité discutions avec un titre (bon tu peux mettre autre chose comme la date c'est pas mal aussi ;) ).
ensuite la relation "appartenir" indique les messages qui appartiennent au file de discution.
cela se traduit par une colonne idDiscution dans la table message.
Pour sélectionner tous les messages d'un fil de discutions un simple select les champs from message where iddiscution=xxx, suffit :)
voila un exemple fonctionnel, après il faudrait une étude plus complète de ton problème mais globalement on peux faire un truc comme ça :)
@+