[MCD] Soucis de conception

Soucis de conception [MCD] - SQL/NoSQL - Programmation

Marsh Posté le 30-09-2011 à 20:52:45    

Bonsoir, j'aimerai avoir vos avis sur la conception d'un MCD que je suis en train de réaliser.  
 
 
Contexte
Un utilisateur se voit attribuer un rôle et un seul (admin,rédacteur,membre). Cet utilisateur peut écrire des tutoriaux ou bien rédiger des articles. Les tutoriaux et articles peuvent avoir des commentaires qui peuvent être écris par des utilisateurs ou des personnes non enregistrées sur le site.
Un commentaire ne peut concerner qu'un article ou bien qu'un tutoriel.
 
Tables
Roles (id,nom_role)
Utilisateurs (id,nom,prenom,email,login,password,created,#role_id)
Articles (id,titre,text,created,modified,#utilisateur_id)
Tutoriels (id,titre,description,url,created,modified,#utilisateur_id)
 
Commentaires(id,autheur,text,created,#article_id,#tutoriel_id)
 
MCD en image
 
Mon problème vient de la table commentaires à cause des deux FK. Avec ce mcd l'une des deux FK sera forcément vide puisque qu'un commentaire ne peut concerner que soit un article soit un tuto.
 
Sachant que je débute encore dans l'élaboration des MCD une petite aide sera la bienvenue  ;)

Reply

Marsh Posté le 30-09-2011 à 20:52:45   

Reply

Marsh Posté le 30-09-2011 à 21:05:24    

Aucun problème je pense, une foreign key veut juste dire que si une valeur est présente, alors elle doit exister dans la table référencée. Mais tu peux très bien ne pas avoir de valeur.


---------------
C'était vraiment très intéressant.
Reply

Marsh Posté le 30-09-2011 à 21:19:03    

Ça me semble vraiment étrange d'avoir un champ vide en fait mais bon, comme je suis pas non plus un expert  [:tinostar]
 
Edit: Je vais attendre d'avoir d'autres avis  [:cupra]


Message édité par Profil supprimé le 30-09-2011 à 21:19:23
Reply

Marsh Posté le 01-10-2011 à 10:22:39    

Perso, je ferai qu'une seule et même table pour tes Articles/Tutoriels (qui ont quasi les même caractéristiques sauf l'url que tu peux laisser vide si c'est un article), tu peux y rajouter dedans un champ "TYPE" qui te dira su tu es dans le cas d'un article ou d'un tutoriel
 

Reply

Marsh Posté le 03-10-2011 à 10:19:15    

+1 pour une seule table Article/tuto et un champ "type". C'est souvent comme ça que je fais...


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
Reply

Marsh Posté le 03-10-2011 à 11:24:28    

Oui c'est ce que j'ai fais au finial, c'est juste qu'avoir des champs NULL me faisait peur  [:tinostar]  
 
Merci pour vos réponses  :jap:

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed