2011-06-23 50 views
0

我使用MS SQL 2008和C#。DataBase引用完整性你的意見日誌表

我需要設計一個能夠在特定表格上記錄CRUD操作的系統。

在我的例子,我有兩個表:

ArticlesPK ArticleId

LogArticlesFK to ArticleId

LogArticles是假設記錄我的Articles表(實際的代碼駐留在我的BL沒有SQL)的任何CRUD操作。

我瞭解升技約參考完整性,我關注的是什麼的情況下,最好的辦法,我從Articles並拒絕或`LogArticles的參考失去刪除記錄。

這裏我的想法:

  • 我把FK表Articles我用級聯SET NULL。
  • 我從表LogArticles中刪除FK,然後我只將沒有任何FK的ArticleId添加到我的LogArticles

請告訴我你對這件事有什麼看法,或者如果你之前建立了類似的系統,那麼你的任何想法。 謝謝你的時間。

回答

1

如果我理解你的問題:

保持結構像你描述, 然後Article添加觸發事件與當前鍵發佈到LogArticles

+0

嗨蘭迪,感謝您的評論,也許我的問題有點模糊,現在我做了一些調整,應該更容易理解。請讓我知道你的艱難。非常感謝! – GibboK

+0

因此,在您的情況下,如果我刪除了一篇文章,我的操作將被LogKenicles中的FK拒絕... – GibboK

+0

您可以選擇 - 級聯刪除 - 將密鑰設置爲空或防止刪除。可能設置爲NULL是根據您的描述正確的選擇。 – Randy