【问题标题】:Efficient database design for multiple product price based on range of quantity基于数量范围的多种产品价格的高效数据库设计
【发布时间】:2019-02-15 11:56:13
【问题描述】:

我有 product 和 product_price 表来存储详细信息。

Table Product
id_product| name    | ....
1         | abcd    | ....

Table Product_price
id_price  | id_product  | qty     | price_type            | price
1         | 1           | 20      | percentage_discount   | 10
2         | 1           | 50      | price_discount        | 2

当用户订单达到一定数量时,每个产品可能包含不同的单价。

上面显示的 product_price 表将根据零售价进行折扣。如果购买超过 20 数量,则视为批发价。

或者我应该这样做

Table Product_price
id_price  | id_product  | qty     | unit_price
1         | 1           | 1       | 12
2         | 1           | 20      | 10
3         | 1           | 50      | 9

我想对产品进行零售价和批发价之类的操作。当用户批量购买时,用户将获得批发价。如果不是批量,那么用户将坚持零售价。它基于购买的数量。

设计是否有任何缺陷或有什么更好的方法可以使它变得更好?谢谢。

【问题讨论】:

  • 您的前 2 个设计在业务中是如何使用的?它们显然不是彼此的变体。我们如何知道哪一个能满足您的需求?另外:目前尚不清楚您的“类似”设计是什么。准确地给它。这也是第二个问题,应该在第二个帖子中。 PS“高效”和“更好”没有任何意义,除非你准确定义它们。
  • @philipxy 我想做类似的规则条件,即在购买数量符合规则时应用折扣并相应地应用折扣。

标签: database database-design schema


【解决方案1】:

执行此操作的通常方法是设置数量范围。所以 1-5 可能有一个价格,6-10 可能有另一个价格,依此类推。如果您没有上下限,您将无法通过一次查找找到您所追求的价格,这应该是您的目标。

【讨论】:

  • 是的,我添加了最小和最大数量。但我仍然认为有更好的解决方案来改进它。寻找建议;)
  • 我过去发现任何试图应用各种基本/折扣/回扣/回扣等规则的东西很快就会变成笨拙的野兽。真的很难计算出最终价格应该是多少,尤其是在存在冲突规则的情况下(如果涉及营销部门,这很可能!)
猜你喜欢
  • 1970-01-01
  • 2017-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多