コード/説明のペアをある種のテーブル タイプの列に格納する単一のコード テーブルを用意するのが一般的です。たとえば、一般的に次のようなテーブルが表示されることがあります。
コード表
しかし、私はそれが良い考えだと思ったことは一度もありません。コードと説明だけを保存する場合でも、コードのセットごとに新しいテーブルを作成することをお勧めします。そうすれば、外部キーの関係がより明確になります。さらに、必然的に、これらのコード セットの 1 つに関する追加データを格納する必要が生じ、テーブルと列に格納されているコード セットの 1 つにのみ適用される追加の列を追加する必要が生じることになります。他のすべての行では null になります。それはいつも醜いものになります。
たとえば、上記の例のように、TableId
すべての国コードを「C」に設定し、すべての部門コードを「D」に設定するとします。しかし、翌月には、国コードごとに郵便番号を保存する必要があるという新しい要件が課せられます。部門コードには適用されないにもかかわらず、PostalAbbreviation 列をテーブルに追加しますか? それとも、国コードごとに追加データを格納するだけの別のテーブルを作成しますか? 他に調べられる場所がない限り、「C」と「D」の意味をどのように知ることができますか? 周りはただの悪い考えです。