因此,我们有关于产品类别、产品和变体的基本表。
类别
id | name | active | parent_id
产品
id | name | price | active
c_p_link
category_id | product_id
变体
id | product_id | price | price_override | active | stock
效果很好。
但我有两个疑问。
第一个问题是如何安排订单。
我们有一个订单表
id | customer_id | ordered | status
我们还有一个order_products表
id | order_id ..?
这就是我好奇的地方。比方说,客户订购了30种产品。我们有吗?
下一部分是,稍后我们期望增加购物车的凭证支持。例如,10%的折扣,买两个,得到一个免费等等,这是我现在不太在意的总体设计(这是至少几个月的假期)。但我想知道这是否会影响我应该选择哪个版本的order_products表?
发布于 2012-11-12 04:32:42
免责声明:我从未编写过处理“购物车”或“订单”的数据库模型
我认为购买时的价格应该被编码到购买数据中:就像从商店收到的纸质收据一样。让我们调用这个total_price,它表示收据上的每一行,不应该与total_purchase_price混淆。
也就是说,收取的金额是固定的。产品价格以后是否发生变化并不重要,价格的变化不应反映出支付的金额。
因此,我将有以下字段:product、unit_price、quantity、total_price。如果需要,可以轻松地添加计算列(例如,base_total_price (unit_price * quantity) )。
现在,total_price可能是一个基于base_total_price * precent_discount字段的计算值:但是,不管它最后是什么,我认为total_price应该存在,并且应该在购买时被修复。(这意味着,如果是计算列,则所有输入在购买时也都是固定的。)
增编:如前所述,我以前从未设计过这样的模型,但我在商店观察到的一件事是,折扣被用作负成本分项项目。也就是说,商品是以“全价”购买的,然后登记册添加了一个条目,以抵消每一个促销活动的成本。我不知道这种做法的优点/理由。
发布于 2012-11-12 04:11:00
只需将产品数量添加到order_products表中:)
我更喜欢第三种解决方案,我认为这对你的数据库的性能是最好的。
https://stackoverflow.com/questions/13338253
复制相似问题