Ответ 1
Я думаю, что он прав (по неправильной причине), потому что первичный ключ не может измениться, но username
может измениться. Поэтому вы должны использовать userid
, потому что это не изменится.
Мне сказал друг:
Какой уникальный ключ вы используете? Надеюсь, вы не сохраняют полное имя пользователя --- это будет использовать слишком много табличного пространства! Назначьте уникальный идентификатор пользователя каждому (уникальный) userNAME и сохранить этот идентификатор пользователя (должен быть INTEGER UNSIGNED auto_increment или BIGINT UNSIGNED автоматическое приращение). Не забывайте создать ссылку
ИНОСТРАННЫЙ КЛЮЧ (
userID
) ССЫЛКИusertable
(userID
) во всех таблицах используя идентификатор пользователя.
Правильно ли указано это утверждение? Почему или почему нет?
Я думаю, что он прав (по неправильной причине), потому что первичный ключ не может измениться, но username
может измениться. Поэтому вы должны использовать userid
, потому что это не изменится.
Он прав по неверным причинам. Табличное пространство является второстепенным по сравнению с тем, что ваше приложение может позже указать, что имена пользователей могут быть изменены или даже перестать быть уникальными (вы могли бы представить себе приложение, в котором не требуются уникальные имена пользователей, такие как Stack Overflow), и поэтому вашему приложению потребуется большой рефакторинг и миграция данных вместо изменения света в другом (целочисленном ПК) случае.