一般来说,当我们刚开始接触数据库理论时,我们可以学习经典的1NF、2NF和3NF。不同的NF要求对数据库中每个表的字段有特定的约束。
然而在有些项目中,需求方会要求我们添加违反范例的冗余字段,或者增加一些先空着不用的荣誉关联表。
这里的潜意是,客户不清楚什么样的需求将在未来发生变化,以避免在后来的需求发生较大的变化,从而导致更多的开发和测试工作安排。在劳动力成本和廉价硬盘成本的比较中,往往会选择在一些表中添加冗余字段。甚至一些冗余的关系表。
当然,这里的目的不是证明经典理论不适用。说明实际情况是复杂的,仅从技术角度可能无法看到项目的全貌。这就需要我们从多种角度去思考和实践,从项目经济成本和研发人员成本对比等方法来均衡采取哪种方式设计会更好。