2017-04-17 23 views
-2

我的系統中有很多文檔,例如訂單發票,申請單等。爲了跟蹤他們的審批流程,我有一個公共表格,其中包含以下列。我是否應該用一個額外的位來反規範化到一個連接,或者什麼?

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 

在我的報告中,我通常只需要考慮批准的文件。在文檔主表(在PR和PO表中)中添加IsApproved位並使用觸發器進行同步,以便我可以避免每次僅需要獲得批准文檔時加入工作流表是否是一個好主意?

任何其他更好的建議也將不勝感激。

+2

很難提供建議,因爲這裏缺少大量信息。 PO和PR的表格是什麼樣子,每張表格內容的含義是什麼,這三張表格如何相互關聯?現在有一個建議,如果你需要「同步」表格,那麼很可能要同步的表格應該是一個視圖。 – stakx

+2

更好的是使用視圖;如果速度問題,你甚至可以使用物化的。觸發器可能會變得棘手並且容易出現死鎖。 – Arvo

回答

0

文檔表應該包含狀態(不是is_approved),因爲您今後可能需要根據文檔狀態過濾文檔,但今天您的需要僅限於status =「approved」。狀態更改歷史記錄應該保存在另一個表中,這是您的案例中的workflow,但我會建議`document_status_tracking'或者'document_tracking'將是該表的更好名稱。