制造商表:
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。任何人都可以建议我一些更好的主意???
答案 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