Postgresql: первичный ключ для таблицы с одним столбцом - PullRequest
0 голосов
/ 16 февраля 2019

Иногда в приложении есть определенные таблицы, в каждой из которых есть только один столбец.Данные записей в соответствующих столбцах являются уникальными.Примерами являются: таблица для названий стран, таблица для названий продуктов (скажем, длиной до 60 символов), таблица для балансовых единиц (длиной 3 символа и определяется пользователем), таблица для типов адресов (например, выставление счетов,доставка) и т. д.

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

Поэтому мой вопрос таков:достаточно ли хорошо использовать этот столбец в качестве первичного ключа для таблицы?Или все же желательно добавить еще один столбец (country_id, product_id, company_id, addresstype_id) в качестве первичного ключа для таблицы?Почему?

Заранее спасибо за любой совет.

1 Ответ

0 голосов
/ 16 февраля 2019

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

думаю, что у вас есть другая таблица, которая необходима для прямой связи между вашей результирующей таблицей (биллинговой таблицей).Для сценария составного ключа необходимо иметь 4 столбца в связанной таблице, чтобы соединиться с таблицей расчета.С другой стороны, если вы используете суррогатные ключи, у вас будет один столбец идентификаторов (простота), и вы можете создать уникальное ограничение на (country_id, product_id, company_id, addresstype_id)

, но трудно сказать, что этот подход лучше, чем другойпотому что у них обоих есть плюсы и минусы.

Вы можете проверить Это для получения дополнительной информации

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