DB Design 允许用户定义产品、产品规格并让他们自己插入订单
Posted
技术标签:
【中文标题】DB Design 允许用户定义产品、产品规格并让他们自己插入订单【英文标题】:DB Design to allow user to define products, product specs and let themself insert orders 【发布时间】:2011-12-22 20:16:49 【问题描述】:我正在设计一个数据库,因为我需要开发这样一个 CRM,用户可以在其中指定新产品、产品规格和定价,然后让他们自己为上一步中指定的产品插入订单。当然插入的数据需要根据他们在db中指定的进行评估。
举个例子我可能会更清楚:user1 创建一个产品“apple”,然后指定“color”和“weight”作为该产品的属性规格。然后 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)
(转换告诉我如何在代码中使用该数据——例如将其转换为整数、浮点数或布尔值,因为值始终是一个字符串)。
但是这种设计并没有给我所需的灵活性,您能帮我获得更好的设计吗?这是一个电子商务,但我想让用户有机会创建自定义类型。 我提出的第一个可能也是最简单的设计是为每个产品创建一个表(每次用户需要添加一个产品时,我都会创建一个新表)或创建一个包含所有可能选项的巨型表并让它们可以为空,但我会选择更灵活的选择。 等待更好的想法/建议。
【问题讨论】:
【参考方案1】:我认为您正在寻找Entity–attribute–value model。请参阅此页面作为开始:
Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms
Planning and Implementing a Metadata-Driven Digital Repository
您还可以在标签中的 SO 中找到有用的线程:eav
【讨论】:
感谢这帮助我设计了数据库。以上是关于DB Design 允许用户定义产品、产品规格并让他们自己插入订单的主要内容,如果未能解决你的问题,请参考以下文章
允许在 Woocommerce 中继续结帐非混合定义的产品类别