我正在设计一个数据库,它将产品和携带它们的商店联系起来。
许多商店将携带相同的产品。 同样,显然,每家商店会有很多类型的产品。
我试图对制作表格的最佳方法进行一些研究,但我在网上阅读的所有资源都在技术上令人筋疲力尽,逻辑上正式化,从而无法直观地理解他们所说的内容。
我一直听到有人说你应该使用联结表,但我不明白这是怎么适用于我的情况。
我想要做的是为“商店”类别创建一行,然后分别创建“product_1”,“product_2”“product_x”等行,其中我将列出商店销售的每个产品,但是我我不确定这是不是很好。
此外,一些商店可能有50个产品,这意味着我需要50行。我不确定是否有办法解决这个问题。
最终,我的问题是,按照标准惯例,这种关系的理想数据库结构是什么?
答案 0 :(得分:4)
我会有三张桌子。一个用于商店[name,id&信息]。一件物品[name,id&信息]。一个链接两个[关系id,商店ID& item id]。
这使您无需更新关系表即可更改商店和商品数据。
因此,如果您想要商店中的商品,则在关系表中搜索与商店ID匹配的商品。反之亦然,如果您想要拥有商品的商店,您可以在关系表中搜索商品ID,并返回带有该商品的商店ID。
裸露的必需品示例:
STORE:
*********************
storeID storeName
*********************
1 store1
2 store2
3 store3
ITEMS:
*********************
itemID itemName
*********************
1 item1
2 item2
3 item3
RELATIONS:
*********************
storeID itemID
*********************
1 1
1 2
2 1
2 3
3 2
3 3
因此,为了找到store1有哪些项,你将得到storeID为1,并搜索关系表以查找哪些行具有商店ID = 1,这将返回第一行和第二行,这告诉你store1有项目类似于找到哪些商店cary item2你将获得item2的ID,即2,在关系表中搜索itemID = 2,这将返回第二行和第五行,这告诉你商店1和3有item2 。