Java 如何在业务过程中捕获数据库中实体的状态?

Java 如何在业务过程中捕获数据库中实体的状态?,java,database-design,data-modeling,business-process,Java,Database Design,Data Modeling,Business Process,我要求那些已经在处理这种情况的人分享他们的经验 用例: 业务订单到达系统>变为活动>订单已接受或过期>待处理>是否成功完成 看到了吗?实体至少有4个状态。我要做的是,我有一个主表“Order”,然后是另外四个表,它们只包含orderid(活动、过期、挂起、完成),我在查询不同状态的订单时进行连接 这样,庞大的表顺序只被读取,而不被写入,因此从性能的角度来看非常有效 对于这个用例,您的技术是什么?您是对的,因为性能(写消除),这个用例需要额外的表。但是有四个表可能会在接下来的迭代中导致很多维护问题

我要求那些已经在处理这种情况的人分享他们的经验

用例:

业务订单到达系统>变为活动>订单已接受或过期>待处理>是否成功完成

看到了吗?实体至少有4个状态。我要做的是,我有一个主表“Order”,然后是另外四个表,它们只包含orderid(活动、过期、挂起、完成),我在查询不同状态的订单时进行连接

这样,庞大的表顺序只被读取,而不被写入,因此从性能的角度来看非常有效


对于这个用例,您的技术是什么?

您是对的,因为性能(写消除),这个用例需要额外的表。但是有四个表可能会在接下来的迭代中导致很多维护问题

我可能只创建一个OrderStatusCode表(orderId,statusId),您可以像这样进行连接

select * from order 
   inner join activeorder 
      on 
   order.orderID = activeorder.ActiveOrderID 
      WHERE activeorder.status = 'l'
但我感觉到,就整个商业周期而言,实体状态的变化不会超过6-10次。把所有的东西都放在一张桌子上应该不会有问题。如果您对“where status\u id=x”选择的status\u id有一个合理的索引。但另一方面,拥有额外的表可以很容易地添加一些关于状态代码的附加属性