最小化MySQL中的表数?

1 mysql sql database e-commerce

关于在数据库中组织数据的好方法的基本问题.假设我有一个多个商店的搜索网站.每家商店都有许多产品.组织价格和库存数据的最佳方法是什么?我看到两种方法:

  1. 每个商店的表格,第一列或第二列标识产品,库存列和价格列
  2. 库存表和价格表,两者中的第一列标识产品,每个商店分别列

第一个选项看起来更方便,但会产生更多的表格.在性能方面,最小化表的数量还是不重要?

另外,对于第一个选项,我应该将这些数据保存在单独的数据库中,还是可以将通用产品和商店详细信息表存储在同一个数据库中?

Mar*_*ers 5

都不是.你应该规范化表格.你可以使用这样的东西:

Product Store Price
FooBar  CA    1.22
FooBar  MA    1.34
BarBaz  CA    2.30
BarBaz  MA    1.99

产品和商店可以是另一个表的外键,您可能还希望考虑使用代理键而不是自然键.这样做的一个优点是,例如,如果产品名称发生更改,则不必修改任何键.