データベース設計でユーザー名を主キーとして使用するのは悪いことですか?
-
22-07-2019 - |
質問
友人から言われた:
使用する一意のキーは何ですか?私はあなたを願っています ユーザー名全体を保存していません ---これはテーブルスペースを使い果たしてしまいます!それぞれに一意のユーザーIDを割り当てます (一意)userNAMEおよびこのuserIDを保存します (INTEGER UNSIGNEDである必要があります auto_incrementまたはBIGINT UNSIGNED 自動増加)。することを忘れないでください 参照を作成する
外部キー(
userID
)のリファレンス すべてのテーブルのusertable
(userID
) userIDを使用します。
上記の記述は正しいですか?なぜですか?
解決
主キーは変更できないが、 username
は変更できるため、彼は(間違った理由で)正しいと思います。したがって、変更しないため、 userid
を使用する必要があります。
他のヒント
彼は間違った理由で正しい。表スペースは、アプリが後でユーザー名を変更したり、一意になることを止めたりすることを義務付ける可能性があるため(スタックオーバーフローのように、一意のユーザー名が不要なアプリケーションを想定できます)、そしてアプリに大きなリファクタリングと他の(整数PK)の場合の軽い変更の代わりにデータ移行。
所属していません StackOverflow