私は友人から語られました:データベース設計の主キーとしてユーザー名を使用するのは悪いですか?
どのようなユニークなキーを使用しますか?私はあなたが 全体のユーザー名を保存していないと願っています ---これはあまりにも多くのテーブルスペースを使います!それぞれ (一意の)userNAMEに一意のユーザーIDを割り当て、このユーザーIDを保存します。 (INTEGER UNSIGNED auto_incrementまたはBIGINT UNSIGNED auto_increment)である必要があります。参照
FOREIGN KEY(
userID
)を作成 に忘れてはいけないユーザーIDを使用して、すべてのテーブル にusertable
(userID
)を参照。
上記の記述は正しいですか?なぜ、なぜそうではないのですか?
プライマリキーは変更できません。または、それは "プライマリ"ではありません。キーは決して変更できないことを保証するために、システムで割り当てられるべきです。他のフィールド(名前など)は一意なインデックスを持つことができますが、定義によっては主キーにすることはできません。 –
アプリケーションは、プライマリキーとしていくつかのフィールドを指定しているため、変更はありません。アプリケーションは後で変更することができ、本来ユニークで変更なしのフィールドを複製または変更できるようにすることができます。これがここのポイントです。 –
ジョインテーブルについても同じですか?つまり、主キーの組み合わせが変更される可能性があるため、結合テーブルのすべてのエントリのIDを作成する必要がありますか? –