我有一個名爲Documents的表格,它存儲文件的文件名,備註等。相關的字段有:觸發器/用於數據完整性的存儲過程器
Document_ID
- 自動編號Document_Type_ID
- FK查找表Document_Types
Table_Unique_ID
的Table_Unique_ID
涉及到任何其他表中,我們使用了其他ID的知道其中表格由相關Document_Type_ID
。
E.g.
Document_Type_ID = 1
涉及Projects
表,所以一個文檔與記錄的1357一個Table_Unique_ID
和Document_Type_ID
1意味着它涉及Project_ID = 1357
。Document_Type_ID = 2
涉及Sites
表,所以一個文檔記錄用的1357和2Document_Type_ID
Table_Unique_ID
裝置1357的
等一個Site_ID
。
這允許什麼類型的文檔,我們任何表中的各種記錄保持了極大的靈活性,Projects
,Sites
,Contacts
等而不是創建單獨的表(Project_Documents
,Site_Documents
等)。
但它已經指出,數據的完整性是很難(甚至不可能)使用傳統的簡單的PK/FK關係強加,因爲這1357可能涉及要麼Projects
或Sites
。
當前數據完整性由用戶界面檢查處理。
問題是,當插入Document
記錄或刪除'其他'記錄(Projects
,Contacts
等)時,觸發器或存儲過程是否有幫助?
如果是這樣,我真的很感激被指出正確的方向。
看似很大的靈活性 - 但從數據完整性的角度來看,這是一個**可怕的**設計。我不會浪費時間在調查觸發器和東西 - **修復設計!** – 2015-02-24 15:09:06
我同意@marc_s 100%。設計看起來很「酷」,但實際上它會變得痛苦而緩慢。 – 2015-02-24 15:11:33
*目前數據完整性是由用戶界面檢查處理* - 這使我的膽量畏縮.....基本上,**數據完整性**在這種情況下不***處理.... – 2015-02-24 15:13:19