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 中继续结帐非混合定义的产品类别

Ant Design中折叠面板Collapse

无法在 Vue.js 中设置未定义的属性“产品”[重复]

Ant Design of React 框架使用总结1

如何从自定义 tableviewcell 中的按钮显示弹出视图?

产品竞赛 | Spark学生设计奖 Spark Student Design Awards(文末附往届获奖作品)