首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在订单表中存储“同一产品的N”的采购

如何在订单表中存储“同一产品的N”的采购
EN

Stack Overflow用户
提问于 2012-11-12 04:07:18
回答 2查看 358关注 0票数 4

因此,我们有关于产品类别、产品和变体的基本表。

类别

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种产品。我们有吗?

  • 添加30行,并为每一行中的每一项添加价格。
  • 添加一行,将合并的总计添加到行中。
  • 添加一行,将单个价格添加到该行

下一部分是,稍后我们期望增加购物车的凭证支持。例如,10%的折扣,买两个,得到一个免费等等,这是我现在不太在意的总体设计(这是至少几个月的假期)。但我想知道这是否会影响我应该选择哪个版本的order_products表?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-12 04:32:42

免责声明:我从未编写过处理“购物车”或“订单”的数据库模型

我认为购买时的价格应该被编码到购买数据中:就像从商店收到的纸质收据一样。让我们调用这个total_price,它表示收据上的每一行,不应该与total_purchase_price混淆。

也就是说,收取的金额是固定的。产品价格以后是否发生变化并不重要,价格的变化不应反映出支付的金额。

因此,我将有以下字段:productunit_pricequantitytotal_price。如果需要,可以轻松地添加计算列(例如,base_total_price (unit_price * quantity) )。

现在,total_price可能是一个基于base_total_price * precent_discount字段的计算值:但是,不管它最后是什么,我认为total_price应该存在,并且应该在购买时被修复。(这意味着,如果是计算列,则所有输入在购买时也都是固定的。)

增编:如前所述,我以前从未设计过这样的模型,但我在商店观察到的一件事是,折扣被用作负成本分项项目。也就是说,商品是以“全价”购买的,然后登记册添加了一个条目,以抵消每一个促销活动的成本。我不知道这种做法的优点/理由。

票数 2
EN

Stack Overflow用户

发布于 2012-11-12 04:11:00

只需将产品数量添加到order_products表中:)

我更喜欢第三种解决方案,我认为这对你的数据库的性能是最好的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13338253

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档