【发布时间】:2017-09-12 19:44:40
【问题描述】:
我的系统中有许多文档,例如订单发票、申请等。为了跟踪他们的审批工作流程,我有一个公用表,其中包含以下列。
WFID ActionDate DocInstancetype DocinstanceID iscurrent status
1 2017-04-04 PO 58 0 Submitted
2 2017-04-05 PO 58 1 Approved
3 2017-04-04 PR 74 1 Submitted
在我的报告中,我通常只需要考虑批准的文件。在 Documents Master 表(在 PR 和 PO 表中)中添加一个 IsApproved 位并使用触发器同步它是一个好主意,这样我每次只需要获得批准的文档时就可以避免加入工作流表吗?
任何其他更好的建议也将不胜感激。
【问题讨论】:
-
很难给出建议,因为这里缺少很多信息。 PO 和 PR 表是什么样子的,每个表的内容是什么意思,这三个表是如何相互关联的?现在的一个建议是,如果您需要“同步”表,那么要同步的表很可能应该是一个视图。
-
最好是使用视图;如果速度是问题,你甚至可以使用物化的。触发器可能会变得棘手且容易死锁。
标签: sql sql-server database-design database-normalization