1
0
这个问题有太多的依赖性,无法很好地回答,其中最大的依赖性是您计划在哪里全面实施业务规则。按照优先顺序,您必须问:您有业务规则层吗?如果没有,是否有独立的数据访问层?如果没有,您是否使用数据提供程序模型?如果不是,那么无论您在处理配置UI的什么地方,您都在考虑强制执行这种事情(或处理SqlException)。 对于wiki之类的东西,您可能不需要非常复杂的业务规则引擎,因为您的问题域已经受到了很好的约束。而且,这听起来像是一种几乎从不改变的规则,因此将其隔离在正式的规则层中有点过分了。因此,最好不要在数据层或数据提供程序中设置这种约束。 例如,如果使用Linq to Sql,可以通过将模型中的OwnerId属性设置为与WikiUser表的关系绑定的不可为空的属性来镜像在Sql Server中所做的工作。这将强制填充OwnerId属性(因为它是不可为空的),并为您提供要查找的唯一约束。 |