数据库设计允许用户定义产品,产品规格并让自己插入订单

时间:2011-12-22 20:16:49

标签: mysql sql database-design entity-attribute-value

我正在设计一个数据库,因为我需要开发这样一个CRM,用户可以在其中指定新产品,产品规格和定价,然后让自己插入上一步中指定的产品的订单。当然,插入的数据需要根据它们在db中的指定进行评估。

我可能更清楚一个例子:user1创建一个产品“apple”,然后指定“color”和“weight”作为该产品的属性specs。然后user1说苹果定价是基于颜色和重量。苹果“黄色”的价格为1美元/重量单位,“红色”苹果的价格为2美元/重量单位。

它还创造了一个产品“汽车”,具有规格“年”,“模型”,“颜色”,“品牌”。此外,它还指定了价格组合。 最后,他创造了具有规格“尺寸”的产品“衬衫”,但价格是每种尺寸的标准

处理此类数据的好处是什么? 我正在考虑创建一个表products (id, name, pricing_type)(pricing_type根据某个字段给出一个想法,如果它是固定定价或可变定价)。 然后productSpecsName (id, relatedProduct FK products (id), name)productSpecsValue (id, relatedSpecsName FK productSpecsName(id), value, conversion)(转换告诉我如何在代码中使用该数据 - 例如将其转换为整数,浮点数或布尔值,因为值始终是字符串)。

但是这种设计并没有给我足够的灵活性,你能帮助我获得更好的设计吗?这是一个电子商务,但我想给用户提供创建自定义类型的机会。 我带来的第一个也许是最简单的设计是为每个产品创建一个表(每次用户需要添加一个产品时我创建一个新表)或者创建一个包含所有可能选项的mega-table并让它们可以为空,但是我会有更灵活的选择。 等待更好的想法/建议。

1 个答案:

答案 0 :(得分:1)