В реляционной базе данных как организовать хранение таблицы пользователей - по ID или ID + Имя пользователя?
У меня есть таблица users, где имя является первичным ключом. Он используется для проверок, уникальности, входа и так далее. Но есть проблема – имя пользователя изменить нельзя. Нужен идентификатор в этом случае? Как в таком случае, имея идентификатор, проверять уникальность записей, вход по имени пользователя и так далее? Реляционная база данных, в будущем будут добавляться связанные таблицы (наборы прав пользователей)
Ответы (1 шт):
В реляционной алгебре есть такое понятие как альтернативный ключ. Более чем один столбец может быть уникальным.
Для обозначения альтернативных ключей в SQL существует ограничение уникальности (UNIQUE).
Чаще всего строковое поле (такое имя пользователя) делают уникальным, а ссылки на таблицу по суррогатному ключу (ID)