説明にコードを展開したり他の属性を追加するために使用されるFKテーブルの場合は、IDENTITYは使用しません。アイデンティティはユーザーデータを挿入するのに適しており、メタデータテーブルは通常静的です。コードに更新プログラムをデプロイするときには、驚かれることなく、IDENTITYの値が期待どおりでないようにする必要はありません。
たとえば、「言語」表に新しい値を追加すると、IDは6になると予想されますが、何らかの理由で(開発が同期していない、別のユーザーが次の言語の種類を実装していないなど)次のIDは7とは異なります。次に、言語ID = 6を使用している行を挿入または変換します。存在しないため、すべてが失敗します(メタデータテーブルでは7です)。さらに悪いことに、あなたが思っていた値6がすでにmedadataテーブルに入っていて、同じ6つの値を共有している2つのアイテムが混在していて、新しい7つの値が使用されないため、
必要なコードの数、見たい頻度(CHARはいくつかの値を調べるのはいいですが、メモリに役立ちます)に基づいて適切なデータタイプを選択します。その後、例えば
、あなただけの少数のグループを持っている場合、あなたは多くの場合、生のデータを見てみましょう、CHAR(1)良いことがあります。しかし
GroupTypes table
-----------------
GroupType char(1) --'M'=manufacturing, 'P'=purchasing, 'S'=sales
GroupTypeDescription varchar(100)
、異なる多くが存在する場合値を指定すると、int(tinyint、smallint、int、bigint)の何らかの形がそれを行います:
EmailTypes table
----------------
EmailType smallint --2 bytes, up to 32k different positive values
EmailTypeDescription varchar(100)