Soucis de conception [MCD] - SQL/NoSQL - Programmation
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.
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
Edit: Je vais attendre d'avoir d'autres avis
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
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...
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
Merci pour vos réponses
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