2010-02-18 2 views
0

Il existe des produits, des sections et des attributs.Comment configurer des tables de base de données avec plusieurs attributs similaires

Chaque attribut peut avoir jusqu'à 5 ou 6 options.

Exemple: Puissance

10 Volt 
15 Volt 
20 Volt 

Et il y a environ 10 produits au total, chaque produit a jusqu'à 17 attributs appliqués.

Exemple: Produit 1

power - 10 volt 
color - red, yellow 
link - online, offline 

Comment qualifieriez-vous les tables configuration? Je suis perplexe. Je pensais avoir une table séparée pour chaque attrubute, puis une table de produits et une table de sections.

La table des produits contient les clés étrangères pour les attributs qui s'y rapportent et les sections. Est-ce que ça a du sens?

+0

Les sections sont-elles des groupes de produits connexes? – awright18

Répondre

0

Ceci est assez commun. Vous pouvez avoir une table de produits de base avec certains attributs généraux comme ...

 
Product 
------- 
ProductID 
ProductName 
Description 
Price 

Ensuite, vous pouvez étendre la table pour les différents types de produits. Donc, vous pourriez avoir une table comme

 
ProductElectrical 
----------------- 
ProductID 
Voltage 
Watts 
BatterySize 

Ou ...

 
ProductApparel 
--------------- 
ProductID 
Color 
Size 
Material 

Ensuite, en cas de besoin, vous pouvez joindre les tables d'extension à la table des produits de base comme celui-ci ...

 
select p.ProductID, p.ProductName, p.Description, pa.Color, pa.Size, pa.Material 
from Product p 
join ProductApparel pa 
on pa.ProductID = p.ProductID 
where pa.Size = "XXL" 

De cette façon, vous pouvez avoir une table de produit de base compacte utilisée dans votre système. Lorsque vous avez besoin de voir les attributs supplémentaires, vous pouvez facilement les joindre à la table produit principale.

0

Je pensais avoir une table distincte pour chaque attrubute,

Ne pas créer une table distincte pour chaque attribut, ce ne sera pas votre serveur but. Créez des tables distinctes pour chacun des produits, sections et attributs et joignez-les en conséquence à l'aide de PK et de FK.

+0

Hmm c'était ma première pensée. Mais je m'inquiète que les attributs du tableau vont sortir du contrôle – jrutter

+0

@jrutter: non, il ne faut pas, vous devez identifier chaque attribut avec le FK correspondant du produit dans la même table et plus d'un enregistrement (attribut) pourrait être inséré pour un produit. Merci.... – Sarfraz