2009-09-24 7 views
0

alt text http://produits-lemieux.com/database.jpgBase de données relation plusieurs à plusieurs

C'est basiquement ma structure de base de données

un produit (sans savon dire) aura beaucoup de taille de vente au détail

  • 1 litre
  • 4 litres
  • 20 litres

Dans mon "produit" base de données je vais avoir l'élément de savon (id # 1) Dans la base de données de taille, je vais avoir beaucoup de taille macadamia:

  • 1litre
  • 4liter
  • 20liter

Comment ne pas dupliquer le 3 temps avec une taille différente ... j'aime être en mesure d'avoir case à cocher dans la taille du produit de toutes les tailles disponibles dans la base de données et vérifier si oui ou non (booléens)


La réponse a GOT parfait, mais comment avoir l'option comme ça:

savon [x] 1 litre, [] 4 litres, [x] 20 litres

+1

Il suffit de faire la même chose que vous faites pour les formats, les certifications et Odeurs. – Lazarus

Répondre

4

Je ne suis pas Bien sûr, je comprends votre scénario exact, mais pour créer une relation plusieurs-à-plusieurs, vous créez simplement une «table de relation», dans laquelle vous stockez des identifiants pour les deux enregistrements que vous voulez lier.

Exemple:

Products 
******** 
ProductID (PK) 
Price 

Retailers 
********* 
RetailerID (PK) 
Name 

ProductRetailerRelationships 
**************************** 
ProductID 
RetailerID 
+0

Darnit! Une autre personne résume la bonne réponse dès que je commence à taper! – Pulsehead

+0

c'est une autre base de données à maintenir ... l'option case à cocher est-elle possible? ... mais je comprends parfaitement votre réponse, et cela fonctionne! – menardmam

+0

Aussi connu comme une table de référence croisée ou une table xref pour faire court. –

0

Un grand nombre à plusieurs est presque toujours modélisé à l'aide d'une table intermédiaire. Pour exemple,

Product 
-------- 
prod_numero 
... 

Size 
-------- 
size_numero 
... 

Product_Size 
-------- 
prod_numero 
size_numero 
... 

Le tableau Size contiendrait des tailles particulières (disons, 10 litres) et la table Product_Size crée un appariement Product et Size.

0

Vous aurez besoin d'un intermédiaire, ou "Join" Tableau

ProductSizes
.......................
ProductID
SizeID

Un enregistrement pour chaque combinaison taille du produit

0

sur la base des réponses, voici la disposition des tables de base de données proposée, il semble compliqué à moi, mais êtes-vous sûr qu'il est la meilleure façon de faire, le Meilleure solution ?

alt text http://produits-lemieux.com/database2.jpg

+0

Je commence à penser, peut-être aller avec une structure xml ... Mais je me souviens d'avoir lu quelque part: Il était une fois, un programmeur a un problème, puis il utilise xml, maintenant il a deux problèmes! ... – menardmam

Questions connexes