首页 > 解决方案 > 复合键中的一个字段可以依赖于另一个字段吗?

问题描述

我正在考虑为我的表(由两个字段,字段 A 和 B)组成一个复合键。但是,字段 B 依赖于字段 A。这个复合键会违反任何数据库设计原则吗?

标签: sqlcomposite-key

解决方案


嗯,是。它确实违反了数据库设计原则。为什么不直接使用A?也就是说,您始终可以查找B使用 a的值JOIN,因此不需要复合外键引用。将 的值存储B在引用表中是多余且低效的(占用数据页和索引页的空间)。

在某些情况下,这样的外键很有用。您没有提供足够的信息来了解您是否有这种情况。因此,作为一般设计原则,这听起来不正确。可能有例外,所以这并不总是一个坏主意。


推荐阅读