私の Web アプリケーションには、ルート ユーザー、システム管理者、顧客、請負業者など、さまざまなタイプのユーザーがいます。列「ユーザー名」、「パスワード」、「役割」で、役割は前述の役割の 1 つです。たとえば、顧客固有の属性を格納するための「Customer」というテーブルも作成します。
これが私の質問です。すべてのユーザー名は一意であるため、ユーザー名を User テーブルの主キーとして使用できます。ただし、「ユーザー ID」列を作成し、ユーザー名列ではなくそれを PK として使用する方が理にかなっていますか? このユーザー PK を外部キーとして使用するテーブルは他にもたくさんありますが、パフォーマンスの観点からは、ユーザー名のテキスト文字列よりもユーザー ID を比較する方が高速になると思います。
ご回答ありがとうございます。