gpt4 book ai didi

Mysql数据库设计中的多对多关系

转载 作者:搜寻专家 更新时间:2023-10-30 22:01:13 26 4
gpt4 key购买 nike

我正在设计一个数据库,该数据库将产品和销售这些产品的商店联系起来。

许多商店将出售彼此相同的产品。同样,很明显,每个商店都会有多种类型的产品。

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

我一直听到人们说您应该使用联结表,但我不明白这对我的情况有何适用。

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

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

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

最佳答案

我会有三张 table 。一个用于商店 [name, id & info]。一个用于项目 [name, id & info]。一个链接两个 [关系 ID、商店 ID 和项目 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 有商品1 和 2。类似地,要查找哪些商店包含 item2,您将获得 item2 的 ID,即 2,在关系表中搜索 itemID = 2,这将返回第 2 行和第 5 行,这告诉您商店 1 和 3 有 item2 .

关于Mysql数据库设计中的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13103461/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com