суррогатные ключи против составных ключей - PullRequest
0 голосов
/ 24 октября 2011

Довольно новый для схемы базы данных (планируем использовать SQLite).Сказав это, я думаю об использовании суррогатных ключей, потому что база данных в настоящее время содержит составной ключ (3 столбца), который отображается в большинстве моих таблиц.У меня есть несколько таблиц, которые содержат 3 столбца для уникального ключа и один столбец, содержащий некоторую информацию;У меня также есть одна таблица содержит 3 столбца для уникального ключа и те же 3 столбца, что и внешние ключи (много родителей).Объединение всех этих таблиц в одну таблицу, кажется, не имеет смысла, потому что было бы много пустых полей.

Любая пропасть, если я выберу одну или другую?Какой из них обычно считается более удобным для программирования?

Заранее спасибо.

1 Ответ

4 голосов
/ 24 октября 2011

Каждый метод имеет свои преимущества и недостатки.

В общем случае проще писать операторы SQL и JOIN, если вам нужно только обратиться к одному столбцу суррогатного ключа.Это также значительно уменьшает размер вашей базы данных.

С другой стороны, с суррогатными ключами вам часто приходится добавлять хотя бы одну дополнительную таблицу в свои JOIN-соединения, чтобы получить информацию, которая является частьюсуррогатный ключ.

Два дополнительных преимущества суррогатного ключа:

  1. Многие платформы требуют использования целочисленного поля первичного ключа.

  2. Если вы привязываете свои записи к какому-либо элементу управления пользовательского интерфейса (например, к входным данным на веб-странице), значительно проще прикрепить одно значение к элементу управления для целей идентификации, чемкодировать и декодировать несколько столбцов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...