【发布时间】:2014-06-10 20:38:23
【问题描述】:
假设您正在为网上商店设计一个可搜索的数据库,并且遇到如下情况:
每个product 将有多个不同的categories。
例如,将 MARKER 视为product。
例如:相同的 MARKER 可能与其category 具有以下所有三个:
- 玩具
- 学校文具
- 艺术配饰
现在,每个category 都有一组对应的任意数量的参数(我们称它们为features),这些参数仅适用于该类别。
因此,对于它的三个product-category 表示中的每一个,上面的MARKER 将有多个不同的product-feature-names 和各自的product-feature-values。
例如:我们可能有这些基于类别的feature-names 和特定产品的feature-values:
- PRODUCT-NAME::: CATEGORY-NAME::: Feature1-name = Feature1-value 等
- MARKER::: TOY::: AgeGroup = 6-12, 有毒 = 没有, ChristmasSpecial = 是的
- MARKER::: SCHOOL-STATIONERY::: BulkAvailability = 否
- MARKER::: ART-ACCESSORY::: 使用 = 精细绘图, CompatibleSurface = 全部
对于这种情况,最好/最优化的设计是什么?
我的想法是使用三个表,但我不知道这对于以后检索数据是否最有效(也许这应该在两个表中完成,甚至只是一个?):
产品表
id,产品名称
类别表
id、fk_product_id、fk_category_name
特征表
id、fk_category_id、feature_name、feature_value
【问题讨论】: