しばらくの間、米国の州 (および準州) のリストをデータベース テーブルに格納し、その情報を使用するアプリケーション用にキャッシュする必要があると多くの人から言われてきました。彼らが私にこれを与えた唯一の理由は、正規化を促進するためであり、「それが私たちが常に行ってきた方法である」ためです.
アプリケーションの範囲が国際的に拡大するためにリストが頻繁に変更される場合 (たとえば、カナダの州を含めるなど)、国識別子も示すデータテーブルにリストを抽象化することは理解できます。ただし、リストがほとんどロックされており、アプリケーションの 1 つの画面でしか使用されていない場合、クエリとキャッシュを実行する価値はありますか? SMALLINT 外部キーを保存することの違いは、CHAR(2) よりもはるかに優れていますか? それは常に実用的ですか?
私が一緒に働いた会社で見たこの傾向について考えていました。