Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1444 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  conception schema BDD

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

conception schema BDD

n°1682540
vichenze
Posté le 06-02-2008 à 09:57:59  profilanswer
 

Bonjour,

 

j'ai un petit problème de conception.

 

Prenons les 3 tables suivantes :

 

Photo (pho_id, titre, date)
Article (art_id, titre, texte)
Commentaire (com_id, texte)

 


Je voudrais associé à un article ou à une photo un commentaire, je voudrais donc savoir si faire :

 

Photo (pho_id, titre, date)
Article (art_id, titre, texte)
Commentaire (com_id, texte, type_com, #ref_id)

 

avec type_comm = 1 pour un commentaire de photo, et type_comm = 2 pour un commentaire d'article. ref_id correspondant alternativement à un pho_id ou à un art_id selon le type de commentaire.

 

Avec à la rigueur une table supplémentaire pour gérer les types.

 


Ou alors suis je obligé de faire une table commentaire_photo et une autre commentaire_article ?

 

Merci d'avance


Message édité par vichenze le 06-02-2008 à 10:44:07
mood
Publicité
Posté le 06-02-2008 à 09:57:59  profilanswer
 

n°1682564
djobidjoba
Posté le 06-02-2008 à 10:18:25  profilanswer
 

tout dépend des cardinalités des relations entre tes entités.
un article correspond-t-il toujours à une et une seul photo ?
un commentaire correspond-t-il à une ou plusieurs photos ?
tu fais le travail de l'ordinateur en devinant le modèle physique de tes données.
fait un modèle conceptuel auparavant.

n°1682591
vichenze
Posté le 06-02-2008 à 10:42:48  profilanswer
 

merci pour ta réponse
 
Alors tout d'abord article et photo sont des tables complètement indépendantes.
 
Ensuite un commentaire commente un et un seul article OU une et une seule photo.
Un article peut avoir entre 0 et n commentaires, et une photo peut avoir entre 0 et n commentaires.
 
 
La question est donc puis-je faire 1 seule table commentaire ou faut il que je fasse une table commentaire pour photo et une table commentaire pour article ?

n°1684769
MagicBuzz
Posté le 11-02-2008 à 11:23:14  profilanswer
 

oui, tu peux faire comme ça.
la seule limitation, c'est que tu ne pourras pas déclarer de foreign key dans la base, car aucun moteur d sgbd ne sait gérer ça automatiquement.
 
ensuite, tu peux toujours faire un trigger si tu veux vraiment t'assurer de la cohérence des données lors de leur modification.

n°1685652
ljo
Posté le 13-02-2008 à 09:38:04  profilanswer
 

Petite suggestion :  
Tu peux aussi modifier ta table commentaire de la façon suivante :  
Commentaire (com_id, texte, pho_id,art_id).
Comme ça, tu peux déclarer des clés étrangères sur la table photo et article.
Comme tu auras toujours pho_id ou art_id null, tu pourras facilement en déduire le type de ton commentaire ( et tu te passe de ta table type).
 
Cette solution marche seulement si tu es sur de n'avoir, dans le futur, aucun autre type de commentaire possible, parce que ce n'est pas hyper évolutif.

n°1685696
MagicBuzz
Posté le 13-02-2008 à 10:28:59  profilanswer
 

mouais, c'est de la dénormalisation, mais effectivemet l'astuce peut s'avérer intéressante :jap:
 
(ceci dit, pour ce genre de trucs, moi je suis pas fan, je préconise plutôt l'inverse : dénuer le plus de sens possible le modèle des données)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  conception schema BDD

 

Sujets relatifs
Formulaire PHP pour insérer dans BDDSchéma des tables Base Firebird
schema d'euler d'une equation différentiel stochastiqueComposant tableau ? Insérer des données dans une BDD
XSLT avec un document XML validé avec XML schema pb....[Résolu] Backuper une BDD
Synchroniser deux BDD distantes (AJAX, sockets, curl & Co.)[MySQL] Export tables d'une BDD vers une autre
Connexion a BDD par jdbctablespaces d'un schéma en DB2
Plus de sujets relatifs à : conception schema BDD


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR