データベース設計でユーザー名を主キーとして使用するのは悪いことですか?

StackOverflow https://stackoverflow.com/questions/1825613

質問

友人から言われた:

  

使用する一意のキーは何ですか?私はあなたを願っています   ユーザー名全体を保存していません   ---これはテーブルスペースを使い果たしてしまいます!それぞれに一意のユーザーIDを割り当てます   (一意)userNAMEおよびこのuserIDを保存します   (INTEGER UNSIGNEDである必要があります   auto_incrementまたはBIGINT UNSIGNED   自動増加)。することを忘れないでください   参照を作成する

     

外部キー( userID )のリファレンス   すべてのテーブルの usertable userID )   userIDを使用します。

上記の記述は正しいですか?なぜですか?

役に立ちましたか?

解決

主キーは変更できないが、 username は変更できるため、彼は(間違った理由で)正しいと思います。したがって、変更しないため、 userid を使用する必要があります。

他のヒント

彼は間違った理由で正しい。表スペースは、アプリが後でユーザー名を変更したり、一意になることを止めたりすることを義務付ける可能性があるため(スタックオーバーフローのように、一意のユーザー名が不要なアプリケーションを想定できます)、そしてアプリに大きなリファクタリングと他の(整数PK)の場合の軽い変更の代わりにデータ移行。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top