我过去构建了一些购物车系统,但我总是将它们设计成最终订单发票只是一个标记为“已购买”的购物车。添加/删除/更改购物车中商品的所有逻辑也是订单的逻辑。所有数据都存储在数据库的相同表中。但这似乎不是设计电子商务网站的正确方法。有人可以解释在域模型中将购物车与发票分开的好处吗?
在我看来,这会导致大量重复代码、数据库中的一组额外表,并且在系统需要开始容纳更复杂的订单(例如为一个项目指定所选选项)的情况下更难维护可能会也可能不会改变订单的价格/可用性/发货时间)。我假设我只是没有看到光明,因为我看到的每一本书和其他例子似乎都将这两个看似相似的问题分开了——但我找不到任何关于这样做的好处的解释!这也是我设计的更改都在系统中的情况下,往往做出后的最初订单确认。之后(但在履行之前)删除、替换或添加项目的情况并不少见。
shopping-cart design-patterns domain-driven-design e-commerce