1

我正在设计一个数据库,它将产品和携带它们的商店联系起来。

许多商店将销售相同的产品。同样,显然,每家商店将有许多类型的产品。

我试图对制作表格的最佳方法进行一些研究,但我在网上阅读的所有资源在技术上都非常耗费精力并且在逻辑上形式化,以至于无法直观地理解他们在说什么。

我一直听到人们说你应该使用连接表,但我不明白这将如何适用于我的情况。

我想做的是为“商店”类别创建一行,然后有单独的行“product_1”、“product_2”、“product_x”等。我会在其中列出商店销售的每种产品,但我不确定如果这是好的形式。

此外,一些商店可能有 50 种产品,这意味着我需要 50 行。我不确定是否有办法解决这个问题。

最后,我的问题是,按照标准约定,这种关系的理想数据库结构是什么?

4

1 回答 1

4

我会有三张桌子。一个用于商店 [name, id & info]。一个用于项目 [名称、ID 和信息]。一个链接两个 [relation id, store 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,然后搜索关系表以查找哪些行的 store ID = 1,这将返回第一行和第二行,这告诉您 store1 有项目 1 和 2 . 类似地,要查找哪些商店 cary item2,您将获得 item2 的 ID,即 2,在关系表中搜索 itemID = 2,这将返回第 2 行和第 5 行,这告诉您商店 1 和 3 有 item2。

于 2012-10-27T19:35:29.000 回答