电子商务网站的数据库设计

时间:2012-03-13 10:17:57

标签: mysql e-commerce

我正在建立一个电子商务网站,我对制造商表格感到困惑。我有一个类别表,其中假设我已作为一个例子 2个值“移动电话和ipods”和子类别表包含类别和子类别值现在子类别有2个值,例如“gsm”和“cdma”,并根据它们的类别值“1”来自类别表重视“手机”。现在,我将如何制造制造商表,根据相同的品牌将被许多类别使用。任何人都可以帮我制作一个整洁的制造商表。我的想法是,我会在制造商表中输入类别名称,并将值设为1,用于未使用的0

制造商表:

id  manufacturer_name  
1   Apple              
2   Htc                

分类

id  item_category
1   Mobile Phones
2   Ipods

子类别

id  item_category  Sub Category
1   1              Gsm
2   1              Cdma

我的制造商表IDEA

id  manufacturer_name  Mobile Phones    Ipod's
1   Apple                   1             1
2   Htc                     1             0

这个想法似乎没问题,但我真的不知道是否有更好的解决方案。好吧,如果有大量类别的情况假设有30个类别,那么就不可能在制造商表中写下每个类别名称并将它们的值设置为1或0。任何人都可以建议我一些更好的主意???

2 个答案:

答案 0 :(得分:1)

而不是你的想法,创建一个manufacturer_category_mapping表,将这些表连接到另一个,如下所示:

manufacturer_id  category_id
1                1
1                2
2                1

因此,每一行都是制造商和类别之间的映射。

然后,此表可能具有manufacturer_id和category_id的复合键,这将阻止您将制造商映射到同一类别两次。

希望这有帮助。

要回答评论,category_id为1的5 manufacturer_id将如下所示:

manufacturer_id  category_id
10               1
11               1
12               1
13               1
14               1

答案 1 :(得分:0)

您需要添加产品表。然后将每个产品绑定到一个类别/子类别,并将制造商与他们制作的产品联系起来,并建立多对多关系。

Manufacturer
- ManufacturerID
- ManufacturerName
- etc..

Product
- ProductID
- ProductName
- etc...

Manufacturer_Product
- ManufacturerID
- ProductID


select m.ManufacturerName, p.ProductName
from dbo.Manufacturer m
join dbo.Manufacturer_Product mp on mp.ManufacturerID = m.ManufacturerID
join dbo.Product p on p.ProductID = mp.ProductID