我正在建立一个电子商务商店,而且我正在"退货/换货"部分。但是,我在概念化如何在关系数据库中实现Return
模型/表时遇到了问题。到目前为止,我有这些模型:
User
(has_many:orders)
Order
(has_many:line_items,belongs_to:user)
LineItem
(belongs_to:order,belongs_to:variant)
Variant
(has_many:line_items)
非常通用。让我们说用户下了一个包含2个订单项的订单:
LineItem 1: {quantity: 1, variant_id: 1}
LineItem 2: {quantity: 3, variant_id: 2}
让我们说用户只想返回2个LineItem 2单元。那么将来他们仍然可以返回1个LineItem 2单元,因为总共有3个单元(quantity: 3
)......那么什么样的关系会是什么?
有没有人有实施Return
模型的经验?我会喜欢一些见解。如果您需要更多信息,请与我们联系。
答案 0 :(得分:1)
我认为它不得不拥有那么多功能或边缘情况。可能客户会花更多的钱让你处理每一个案子,而不是一个职员只是捏造这些数字,以使顾客在这些边缘案件中出现的罕见情况下感到高兴。
我会将return_date
和return_qty
添加到line_item
表格中。然后,如果有人返回2/3项,请设置return_qty = 2
和return_date = Time.now
。如果他们确实返回第3个项目,请递增return_qty
并覆盖return_date
。你将失去历史回归日期,但这似乎是如此罕见,可能毫无价值的信息。你甚至可能不需要它。