これらがコードを説明に展開するため、または他の属性を含むためだけに使用されるFKテーブルである場合、IDENTITYは使用しません。IDは、ユーザーデータを挿入するのに適しています。通常、メタデータテーブルは静的です。コードに更新をデプロイするとき、驚いたり、予想とは異なるIDENTITY値を使用したりする必要はありません。
たとえば、「Languages」テーブルに新しい値を追加すると、IDは6になると予想されますが、何らかの理由で(開発が同期していない、他の人が次の言語タイプを実装していないなど)、次のIDはgetは7とは異なります。次に、Language 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)