我有一个实体Order
。
订单上有日期、客户、处理订单的同事等信息。
现在,订单还需要存储一个状态,即区分赢得的订单和丢失的订单。
这个想法是,客户可以向公司提交订单,但最终可能会退让。
(作为域信息,顺序不是项。这是一家服务公司,它试图处理客户,并提供他们什么时候可以交付订单,以什么价格等。因此,客户可以找到一个更好的伯根和备份,并停止从公司订购过程)。
该公司希望获得有关赢得订单和丢失订单的数据,而赢得订单和丢失订单之间的区别只是多个属性,例如ReasonLost
可以是Price
或Time
。
我的问题是,Order
的最佳表示是什么?
我正在考虑使用一个表,只对赢得的订单使用ReasonLost
作为空值。
如果这些新实体之间的差异不显著,那么为WonOrder
和LostOrder
创建单独的表是否有意义?
这个案子最好的模式是什么?
最佳答案
用一张桌子。添加OrderState字段。
警告:如果你每天要做数百万笔交易,那么像这样的决定需要更多的关注和分析。
关于database - 我应该只使用一张 table 吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7619915/