【发布时间】:2015-05-05 21:09:14
【问题描述】:
我正在设计一个具有以下场景的电子商务网站:
- 客户可以购买商品并创建订单。
- 订单可能有未知费用,将在客户之后添加 支付项目的总金额。也就是说,客户支付 先一定数量。该订单增加了一些费用并更改了总额。 客户再次支付差价。但是这两个(或 更多)付款与同一订单相关联。
- (可选)客户可以为多次提交单笔付款 订单。
目前,我有一个Order 表,每个订单可能包含多个OrderLineItems(简化架构):
Order
=====
customer
line_items
total
status
OrderLineItem
=============
price
quantity
order
product
付款与订单相关联(简化模式):
Payment
=======
order
payment_account
total
result
目前的实现似乎很难支持单个订单场景的多次付款。我认为我必须在系统中引入不可变的发票,并且付款应该与发票而不是订单相关联。但是,对于上述场景,我需要一些关于订单/发票/付款建模的帮助。我有一些具体问题:
- 订单和发票看起来与我非常相似(例如,两者都有 项目和总数)。典型的主要区别是什么 电子商务系统?
- 我应该如何为我的方案建模发票?我应该有
OrderLineItems 代表Order和InvoiceLineItems 代表Invoice? - 一些初步想法:我将关联多张发票 有一定的顺序。每当订单更改总数时,我都有 以某种方式计算差异并发送新的/不可变的发票 给客户。然后,客户可以付款,付款将是 与发票相关联。
很想听听一些建议。非常感激。谢谢!
【问题讨论】:
-
付款和发票是多对多的。用户可以在一张发票上进行多次付款,也可以对多张发票进行一次付款。您需要一个政策(业务规则)来确定如何根据公司规则应用付款
-
@sqlvogel 你能推荐几个吗?我愿意尝试一些灵活且易于与我们的后端集成的软件包,也许是 Mongo。谢谢!
-
@NeilMcGuigan 是的。我在这方面没有太多经验,想了解更多关于现有系统如何解决这个问题的信息。你有什么推荐的资源吗?谢谢!
标签: database database-design e-commerce payment invoice