【发布时间】:2013-08-24 05:00:38
【问题描述】:
网站有不同类别的产品 (手机、平板电脑、洗衣机等)
每个产品都会有差异。价格取决于商店(如果用户查看 Galaxy S4 16GB,它将显示 Xstore 为 $X,Ystore 为 $Y)
网站将进行大量过滤。例如,电话可能会根据价格、颜色等进行过滤,也可以根据制造商或商店进行过滤。 (所有三星产品、Xstore 上的所有产品等)
因此,每个类别的规格应单独存储(手机:ScreenSize、内存、操作系统等。手表会有不同的规格..)。
每个类别(手机或手表)预计会有约 1000 多种产品。
问题:
我首先想到了金字塔式的设计。一张表用于所有产品,然后为每个类别添加通用规格的通用表(对于手机,它将具有屏幕尺寸、Os、..),然后是第三张表用于变化(内存:16GB 或 32GB,每个商店的价格, ...等)。
问题是:包含所有产品的主表将非常大(数千个),并且过滤繁重,我至少必须在三个表之间来回切换,如果我要过滤三星产品,我会必须处理更多的表(平板电脑、笔记本电脑等)。 从性能的角度来看,我不确定它是否会顺利。
所以我想到了直截了当的方法;为每个类别创建一个表。即使是变化也会被复制(Galaxy S4 16GB 和 32GB 为 2 行,甚至 Xstore 和 Ystore 的 16GB 价格为 2 行)。我知道它违反了规范化。但是这样表只能勉强超过 1000 行,我最终会得到更简单的代码,而且我认为它会提高性能,所以我什至不需要索引。我需要处理所有表格的唯一情况是当我按制造商过滤时,所以我必须抓住三星平板电脑、手机等。
很抱歉详细说明,因为我没有架构,所以我试图让它尽可能清楚。非常感谢您的耐心等待,我愿意接受新的建议。
提前致谢:)
编辑
问题是分类(只有一个级别的电话、平板电脑等),每个都在一个单独的表中 VS 全部在一个表中,以及类别和差异属性或规格的子项。这是一个性能问题。
【问题讨论】:
-
同一产品是否可以在不同的商店有不同的属性,或者产品是否因属性而异(128 meg IPAD vs 256 meg)相同的产品不同的属性或不同的产品?
-
X 商店 128 GB IPAD 售价 1000 美元。y 商店 128 GB IPAD 售价 990 美元。 256 GB IPAD 在 Y 商店售价 1200 美元
-
前 2 个是同一种产品,但不同商店的价格不同。第三个是另一个产品。
标签: mysql sql database database-design database-schema