我们常常遇到一些小的无关紧要(有争议的)表格。虽然它们用于连接(节约),但开发人员仍然不愿意将它们联系起来。
可能太多引用使插入变慢。
这导致了这个问题: 作为一个拇指规则,我们应该关联数据库中的所有表吗?如果没有,那么在哪里划线?
感谢
答案 0 :(得分:2)
外键并不总是对性能产生负面影响,它们也可能产生积极影响。数据库关系不仅仅是确保参照完整性,它们还有助于向SQL Server讲授数据的性质。两个字段相关的事实可以提供关于查询基数的线索,因此优化器在估算查询成本时实际考虑了这些关系。
在我看来,如果数据库中有两个相关的字段,它们应该有一个已定义的关系。通常,您可以向SQL Server教授关于数据的更多信息(不仅仅是关系,还包括CHECK约束),它在生成高效查询计划方面就越好。当然,与SQL Server中的任何内容一样,规则也有例外,但如果您需要经验法则,我会倾向于定义所有关系。