【发布时间】:2021-10-29 05:36:06
【问题描述】:
我在我的网站数据库中遇到了一个问题。我希望我在下面解释得足够好:
我的网站的想法是显示同一产品在不同商店的价格。例如,我的产品“shoesA”在 shopA、shopB 和 shopC 中销售。
鞋子A的价格如下:
shopA : 107$,
shopB : 114$,
shopC : 97$
我可以看到存储产品数据的两种主要方式:
1) 将有关单个产品的所有数据存储在单个表中的一行中。这将需要使用二维数组。
例子:
ID=48,
Name="shoesA",
Brand="brandA",
Prices="[["shopA" , 107] , [["shopB " , 114] , [["shopC " , 97]]",
2) 将这一切分成单独的表格。
例子:
table_product_info
ID=48,
Name="shoesA",
Brand="brandA"
table_product_prices_shopA
ID=4,
Product_ID=48,
Price=107
table_product_prices_shopB:
ID=4,
Product_ID=48,
Price=114
table_product_prices_shopC
ID=4,
Product_ID=48,
Price=97
为什么我认为 1 比 2 更快,因此更好:
要使用方法 1 获取 shoesA 的全部数据,我只需要执行 1 次查询。但是对于方法 2,它可能是 10 个查询。
非常感谢您花时间阅读本文并提供帮助!
【问题讨论】:
-
产品表(ID、名称、品牌)。商店表(id,名称)。价格表(id、product_id、shop_id、价格)。
-
你有第三种方法,有一个产品表、一个商店表和一个价格产品商店表,这可能是最好的选择
标签: mysql sql database database-design database-normalization