出于审计目的,数据库中的每个Sql Server表都有一个' LastUpdatedUserId'和' CreateduserId'柱
这些列是ApplicationUser表中的外键
严格来说,每个表中的两列都应该有一个Check Constraint
然而,这使得数据图表不可读且无法布局
应用程序负责使用当前登录的ApplicationUser'
更新这些列...所以
...我应该使用SQL Sever检查约束还是依赖应用程序来强制执行参照完整性
答案 0 :(得分:1)
我应该使用......
始终检查约束。没有外部应用程序可以比在SQL Server内部管理RI更好地实施RI。这就是我们使用SQL Server的原因。
数据图表不可读且无法布局
尝试更好的布局软件。在任何情况下都不应影响您的RI需求。
严格来说......
您已回答了自己的问题......
跟进
如果使用LINQ或某些UI强加的类型约束,则无关紧要。您的数据必须首先是声音(满足参照完整性)。无论您是在SQL中运行还是应用程序都无关紧要。只有在你解决类型安全问题之前首先需要RI(由强类型模型强加)。曾经有过Erik Meijer(LINQ的设计师)的视频解决了这个问题。
答案 1 :(得分:-1)
至于我发布的另一个问题 - 我通过使用ORM解决了这个问题 (DevExpress XPO)
这抽象了几乎所有数据库 - 因此在OO应用程序中(几乎)甚至不需要考虑持久化对象的数据存储