mysql - 如何对价格调节因素建模?

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

如何对可能有或没有价格调节剂的产品的价格进行建模。例如,假设我有一件有不同尺寸和不同颜色的 T 恤待售:

  • 小号,白色 = 10 美元
  • 小号,黑色 = 10 美元
  • 大号,白色 = 15 美元
  • 大号,黑色 = 20 美元

请记住,并非所有价格修饰符都是“尺寸”和“颜色”。此外,某些产品可能根本没有价格调节剂。这些信息应该如何在数据库中建模?

我的直觉是选择 EAV,但每当我开始考虑 EAV 时我总是很担心。我使用 EAV 对此进行建模的方式将

products
 - id
 - name

prices
- id
- product_id
- attribute
- value

我总是有属性=“金额”和值(value)=无论价格是多少。

我担心这不是对此类数据进行建模的正确方法。建议/反馈?

最佳答案

正如您所知,在大多数制造系统,尤其是成本核算系统中,您会看到这些数据的不同建模和困难,如果现在您可以访问任何著名的 ERP 系统,您可以看到它们的架构,但作为我自己的想法,属性你提到的很棒。

这使您可以轻松拥有和管理所有产品、属性和产品属性:

products
 - id
 - name

attributes
 - id
 - attribute_id
 - attribute_name
 - attribute_type

product_attribute_values
 - id
 - product_id
 - attribute_id
 - value 

现在我们在为具有多个属性的产品定价时遇到问题,我认为是指定有多少属性在定价中发挥作用(即假设两个),然后我们需要这样的东西:

product_attribute_price
 - id
 - product_attribute_values_id_1
 - product_attribute_values_id_2
 - price

正如我所说,大多数 ERP 系统对于此类场景都有很好的架构,但我带来了自己的想法,没有复制任何一个,这个想法肯定可能有问题,需要更多审查

关于mysql - 如何对价格调节因素建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28594946/

相关文章:

java - Spring:使用事务性数据库方法处理长时间运行的 Web 服务调用的最佳方式?

MySQL表设计,一行还是多pr用户?

php - 单个自动编号而不是多个键

database - 联系人管理系统架构

php - Laravel - 多行插入和检索 id

php - 如何使用 PHP 获取 MySQL 数据库表中的最后一条记录?

c# - 使用 C# 将数据插入 SQLite 数据库

php - 如何划分存储在 phpmyadmin 数据库中的字符串并以任意顺序从该字符串中搜索单词?

mysql - 主索引与索引的查询性能

php - MySQL 简单查询返回零行