复合键中的一个字段可以依赖于另一个吗?

时间:2019-06-05 20:58:43

标签: sql composite-key

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

1 个答案:

答案 0 :(得分:2)

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

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