比方说,我有一个帐户创建表单,填写用户数据库。假设这个数据库表有6列:UserID,UserLogin,Password,Email,Demographic1,Demographic2。实际需求与业务需求
程序确实需要UserID,UserLogin和Password。它不能没有。其余的是“业务需求”,公司想知道这些事情。他们是“必需的”。
构建我的应用程序和数据库以便实际需要这些应用程序和数据库,还是在业务逻辑中强制执行此约束会更好吗?
我的直觉告诉我第二个选择,但在我看到的几乎所有生产代码中,第一个通常就是这种情况。
这是缺乏计划,或某种形式的印记从业务/下午程序员(他们告诉我这是必需的,我会做到这一点)。或者,有没有令人信服的理由?
是的,但是该存储(可以说DB)要求它们,还是应用程序的责任(应该是可以为空的) – aepheus
从我的角度来看,这取决于这些属性的生命周期(而不是空)。如果它们应该保留它们的值并且不以任何方式进行计算,那么将它们放入db。如果没有,让应用程序照顾他们。 – a1ex07
他们有一个无限的生命时间,我不想说他们不会被放在数据库中。我的问题是应该在数据库中执行“必需的”(但不是技术上要求的)约束,还是应该在业务逻辑中强制实施,还是两者都必须执行? – aepheus