Может ли одно поле в составном ключе зависеть от другого? - PullRequest
0 голосов
/ 05 июня 2019

Я думаю о создании составного ключа для моей таблицы (которая будет состоять из двух полей, полей A и B). Однако поле B зависит от поля A. Будет ли этот составной ключ нарушать какие-либо принципы проектирования базы данных?

1 Ответ

2 голосов
/ 06 июня 2019

Ну да.Это нарушает принципы проектирования баз данных.Почему бы просто не использовать A?То есть вы всегда можете найти значение B, используя JOIN, поэтому ссылка на составной внешний ключ не нужна.Хранение значения B в ссылочных таблицах является избыточным и неэффективным (занимает место как на страницах данных, так и на индексных страницах).

В некоторых случаях такой внешний ключ полезен ,Вы не предоставили достаточно информации, чтобы узнать, есть ли у вас такой случай.Таким образом, в качестве общего принципа дизайна это звучит неправильно.Могут быть исключения, поэтому это не всегда плохая идея.

...