В реляционной базе данных как организовать хранение таблицы пользователей - по ID или ID + Имя пользователя?

У меня есть таблица users, где имя является первичным ключом. Он используется для проверок, уникальности, входа и так далее. Но есть проблема – имя пользователя изменить нельзя. Нужен идентификатор в этом случае? Как в таком случае, имея идентификатор, проверять уникальность записей, вход по имени пользователя и так далее? Реляционная база данных, в будущем будут добавляться связанные таблицы (наборы прав пользователей)


Ответы (1 шт):

Автор решения: Герман Борисов

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

Для обозначения альтернативных ключей в SQL существует ограничение уникальности (UNIQUE).

Чаще всего строковое поле (такое имя пользователя) делают уникальным, а ссылки на таблицу по суррогатному ключу (ID)

→ Ссылка