作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我要求那些已经处理过这种情况的人分享他们的经验。
用例:
业务订单进入系统 > 变为 Activity 状态 > 订单被接受或过期 > 待处理 > 是否成功履行。
你看到了吗?该实体至少有 4 个状态。我正在做的是,我有一个主表“Order”,然后有四个仅包含 orderId( Activity 、过期、待处理、已完成)的其他表,并且在查询不同状态的订单时我正在执行 JOINS。
这样Order这个大表只能读不能写,所以从性能的角度来看是非常有效的...
针对此用例您有哪些技术?
最佳答案
您是对的,由于性能原因(写入消除),此用例需要额外的表。但是有四个表可能会在后续迭代中带来很多维护麻烦。
我可能只创建一个 OrderStatusCode 表(orderId、statusId),您可以像这样进行 JOINS
select * from order
inner join activeorder
on
order.orderID = activeorder.ActiveOrderID
WHERE activeorder.status = 'l'
但我感觉整个业务周期中实体状态的变化不会超过6-10次。将所有内容都放在一张表中应该不成问题。如果您对“where status_id = x”选择的 status_id 有合理的索引。但另一方面,拥有额外的表可以轻松添加一些有关状态代码的附加属性。
关于java - 如何在业务流程过程中捕获数据库中实体的状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5176257/
我是一名优秀的程序员,十分优秀!