我有一个实体Order
。
订单包含日期,客户,处理订单的员工等信息。
现在订单还需要存储一个状态,即区分赢单和丢失订单。
这个想法是客户可以向公司提交订单,但最终可以退出。
(作为域名信息,订单不是商品。它是一家服务公司,它试图处理客户并在他们可以交付订单和价格等时提供报价。因此,客户可能会找到更好的burgain和备份并停止公司的订购流程。
公司希望获得订单和订单丢失的数据,赢得订单和丢失订单之间的差异仅仅是几个属性,例如ReasonLost
可以是Price
或Time
。
我的问题是,Order
的最佳代表是什么?
我正在考虑使用单个表,只有获得的订单,ReasonLost
为空。
如果这些新实体的差异不显着,为WonOrder
和LostOrder
创建单独的表是否有意义?
这种情况下最好的模型是什么?
答案 0 :(得分:2)
使用一张桌子。添加OrderState字段。
警告:如果你每天要做数百万笔交易,那么这样的决定需要更多的关注和分析。
答案 1 :(得分:1)
您可以考虑另一种替代设计。在此替代方案中,您为订单丢失原因保留第二个表,并将其作为可选的1:1与订单表相关联。请注意,这实际上是超类型/子类型模式的实现,其中丢失的订单子类型具有一个附加属性。
看起来像这样:
在下列任何情况下,此替代方案可能具有吸引力: