首页 > 解决方案 > 基于数量范围的多种产品价格的高效数据库设计

问题描述

我有 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

我想做一些产品的零售价和批发价。当用户批量购买时,用户将获得批发价。如果不是批量,那么用户将坚持零售价。它基于购买的数量。

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

标签: databasedatabase-designschema

解决方案


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


推荐阅读