1

「メールアドレス」や「userName」uniqueフィールドを含む「users」テーブルを作成したいのですが、「id」int usigned auto_incrementを追加する必要がprimary keyありますか?

そのようなテーブルの「id」フィールドを別のフィールドで使用している教科書の例をいくつか見たので、私は尋ねていuniqueます。

4

2 に答える 2

4

はい、それがベストプラクティスです。

  1. 他のテーブルで外部キーとして使用します。
  2. キーを一意のままにしておきたい(ユーザー名を変更したい場合がある)
  3. キーにインデックスを付ける必要があります。インデックスは、varcharよりも数値タイプの方がはるかに小さくなります。
于 2012-10-24T17:24:18.393 に答える
1

列のデータ型userIdを使用してテーブルにインデックスを付けるとパフォーマンスが低下するため、列を使用する必要があります。VARCHAR

パフォーマンスには使用するINT方が優れています。それらはより少ないスペースを占有し、さらに重要なことに、それらは比較するのがはるかに高速です。

1つのINTCPU命令で比較を実行できます。VARCHARsまたはsの場合CHAR、各文字を順番に比較する必要があります。これにより、すべてのPKルックアップが高速になります。結合テーブルがある場合、すべての結合選択はPKを検索します。

于 2012-10-24T17:25:55.113 に答える