可配置产品eshop的数据库设计建议

时间:2010-04-15 14:04:15

标签: database database-design schema

我正在建立一个可配置产品的电子商店。可配置部件需要具有与主产品不同的价格和库存。 在这种情况下,哪种数据库设计最好?

我从这样的事情开始。

功能

  • ID
  • 名称

功能选项

  • ID
  • id_feature

产品

  • ID
  • 名称

产品功能

  • ID
  • id_product
  • id_feature
  • value(保存功能选项中的值以便于搜索)
  • 可配置(是,否)

问题是现在我被困在如何保存可配置的产品功能上。 我正在考虑将它们的价值保存为json。但这将使某些选项的价格修改变得困难。

你会怎么做?

谢谢。

1 个答案:

答案 0 :(得分:2)

另外两个表将完成魔术(下图)。可以而且应该始终避免像JSON或可解析文本字段这样的黑客。

  -- one product <id_product> can have multiple
  -- product variants <id> with different features  enabled
  product_variant
    id
    id_product (one product - many variants)

  -- features, enabled for certain <id_product_variant>
  product_variant_enabled_feature
    id
    id_product_variant (one variant - many features)
    id_product_feature
    unique_constraint(id_product_variant, id_product_feature)