我使用MS SQL 2008和C#。
我需要设计一个能够在特定表上记录CRUD操作的系统。
在我的例子中,我有两个表:
带有Articles
的 PK ArticleId
和
带有LogArticles
的 FK to ArticleId
。
LogArticles
是为我的Articles
表记录任何CRUD操作(实际代码驻留在我的BL没有SQL中)。
我理解有关参考完整性的abit,我担心如果我从Articles
删除记录并拒绝或丢失`LogArticles中的引用,最好的方法是什么。
这是我的想法:
Articles
上,并使用CASCADE SET NULL。LogArticles
中删除了FK,我只会将没有任何FK的ArticleId添加到我的LogArticles
。如果您之前已经建立了类似的系统,请告诉我您对此有什么看法,或者您的任何考虑。 谢谢你的时间。
答案 0 :(得分:1)
如果我理解你的问题:
保持你所描述的结构,
然后在Article
上添加触发器,使用当前密钥将事件发布到LogArticles
。