假设我有一个电子商务,其数据模型如下所示,它允许Sale描述单个Product的销售方式。该部门允许以不同的方式(不同的定价,或在不同的时间点提供)多次销售产品。这是伟大的,当一个销售是出售一个单一的产品。
问题是:如何改进这个数据模型以允许销售有许多产品?
例如,要创建一个包含1的产品A和1的产品B的捆绑包,所以如果一个客户想要这些捆绑包的quantity=3,他们将总共得到3A和3B的包。
也可以是一种产品的倍数出售。在这种情况下,销售将是5个产品C,因此,如果一个客户想要quantity=3的这些捆绑,他们将得到15个产品C。
到目前为止,我最好的想法是增加一个新的表。这将允许销售引用许多订单,这些订单描述了包中的内容。
但如此大规模的重构是一项艰巨的任务。由于各种原因,sale.product出现在代码库中的次数是巨大的。每一种情况都需要在代码中进行修正,而且可能还需要表示。
因此,在我们对这一方法作出过多承诺之前,我想知道是否还有一线希望我还没有看到,或者我的未来是否充满了这场史诗式重构的痛苦和危险。
发布于 2014-02-07 02:03:22
在过去,我在那些这样做的公司看到的是两种方法中的一种:
如果我这么做的话,我会找到一种方法,把包作为“快速输入”来推销。它的工作方式有点像GUI宏;您可以从产品列表中选择一个包,它会自动向发票中添加所需的各个行项(和数量)。你仍然需要一个“材料清单”来实现它,但你不需要重构整个系统。
https://softwareengineering.stackexchange.com/questions/228027
复制相似问题