1 table contenant 2 clé étrangères ?

Eléphant du PHP | 135 Messages

26 oct. 2009, 11:11

Bonjour,

je réfléchis sur la conception d'une base de donnée, cependant, une question me taraude depuis quelques temps.

Est-ce le bien de faire une liaison en "cercle", j'explique:

marchands
-----------
marchand_id


marchands_catalogues
---------------------------
catalogue_id


catalogues_articles
-----------------------
article_id
article_catalogue_id
article_marchand_id



pour la table 'catalogues_articles', je n'ai pas l'utilité de devoir faire une jointure sur la table 'marchands_catalogues' pour récupérer le marchand.
donc, est ce bien d'ajouté une clé étrangère sur la table 'catalogues_articles' vers la table 'marchands' ?


merci :)

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 oct. 2009, 12:54

Ben non ça n'a pas de sens, tu es en train de modéliser deux choses différentes. Il faut prendre le problème dans l'autre sens :

1 catalogue correspond à 1 et 1 seul marchand : clé étrangère vers marchands dans catalogues
1 catalogue peut-être édité par plusieurs marchands : association entre les entités marchands et catalogues

Là tes infos font doublon.

Eléphant du PHP | 135 Messages

26 oct. 2009, 14:29

merci pour ta réponse ouckileou,

cependant, il semble que je me sois mal exprimé. ma question concernait principalement la table "catalogues_articles"

habituellement, j'aurai mis une clé étrangère dans cette table , vers la table catalogue.

avec cette solution, si je veux récupérer le marchand qui vend l'article, je suis obligé de passer par la table catalogue.

c'est pour éviter cela que je voulais mettre une clé étrangère dans la table "catalogues_articles" vers "marchands"

c'est plus clair expliquer comme cela?

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 oct. 2009, 15:18

C'est vrai que j'ai un peu mélangé, mais en fait le principe reste valable.

Les marchands éditent des catalogues
Les catalogues contiennent des articles

Personnellement, je ne vois pas l'utilité de relier les articles directement aux marchands, tu dois effectivement passer par le catalogue mais ce n'est pas compliqué, et ça reste la modélisation en base de la réalité. Pourquoi voudrais-tu éviter cela ?

Eléphant du PHP | 135 Messages

26 oct. 2009, 15:54

vu que je n'utilise les informations concernant le catalogue, je trouvais inutile de devoir y faire une jointure :)

merci pour les précisions et la réponse. :P

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

26 oct. 2009, 17:21

Résolu ?

Eléphant du PHP | 135 Messages

26 oct. 2009, 18:20

oui, j'attendais juste au cas ou tu rajouterais quelque chose à mon dernier message ;)

merci pour ton aide