Bonjour Bakura,
==> c'est pour cela qu'elle n'est pas très académique. Sans compter que, le jour ou une discussion aura plus de deux intervenants, tu es mal... Tout est là !... si tu décides de tout bloquer à deux interlocuteurs, tu peux tout doubler...Envoyé par Bakura
==> tu évoques, de nouveau, un processus. La modélisation d'une base de données ne doit pas se plier à la simplification de requête : si elle est béton, cela coule tout seul. Pour répondre à ta question :Envoyé par Bakura
Utilisateur A => DiscussionUtilisateur (<>A) => Utilisateur B ;
==> Discussion ==> Message.
Ce n'est qu'une solution. Un SGBD sait gérer correctement les jointures et les requêtes ne représentent que quelques lignes de code SQL.
Donc, nous sommes revenus à (lu/non lu niveau message) :
Utilisateur(id_utilisateur, nom, type (A/B), ...) ;
Discussion (id_discussion, sujet, supprimée (O/N), ...) ;
DiscussionUtilisateur (#id_discussion, #id_utilisateur, favori (O/N), ...) ;
Message (id_message, #id_discussion, #id_utilisateur, contenu, lu (O/N), ...) ;
==> à noter les relations :
Utilisateur ---(0,n)---[participe]---(2,2)--- DiscussionUtilisateur ;
Discussion ---(1,1)---[concerne]---(2,2)--- DiscussionUtilisateur.
Partager