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

我要求那些已经处理过这种情况的人分享他们的经验。 使用案例: 业务订单进入系统>变为活动>订单被接受或已过期>待处理>成功完成或未成功完成。 你看 ?该实体至少有4个状态。我正在做的是我有一个主表“订单”,然后是其他四个只包含orderIds(活动,已过期,待处理,已完成)的表,我在查询不同状态的订单时正在进行JOINS。 这样,庞大的表Order只能读取但不能写入,因此从性能的角度来看它非常有效...... 这个用例的技巧是什么?     
已邀请:
你是对的,因为性能(写入消除),这个用例需要额外的表。但是有四个表可能会在后续迭代中引起很多维护问题。 我可能只创建一个OrderStatusCode表(orderId,statusId),你可以做JOINS之类的
select * from order 
   inner join activeorder 
      on 
   order.orderID = activeorder.ActiveOrderID 
      WHERE activeorder.status = 'l'
但我感觉到,对于整个商业周期,实体状态的变化不会超过6-10。将一切都放在一个表中应该不是问题。如果在status_id上有“where status_id = x”选择的合理索引。但另一方面,使用额外的表可以轻松添加有关状态代码的一些其他属性。     

要回复问题请先登录注册