3番目のオプション、設定ファイルを使用します!
私が取り組んでいるアプリケーション(Javaの場合、私の例はすべてJava + Springを使用しています)では、そのような値は通常、構成ファイルに格納され、アプリケーションの起動時にそれらを必要とするコードに(Springを介して)インジェクトされます。プロパティファイル内:
motorFramesString=412T, 413T, ...
春の設定で:
<bean="motorFrameManager" class="myCompany.MotorFrameManager" >
<property name="motorFrames" value="${motorFrames}"/>
</bean>
これの利点は、これらのほとんど静的な値を再コンパイルせずに簡単に変更または追加できることです。(リレーショナル)データベースに参照データを入力することを心配する必要はありません(とにかくすべてをデータベースに入れる必要はありません)。
これらの値が参照テーブルの代わりに構成ファイルに入れられる理由については、これらの値を主にコードで、または主にデータベースで使用する予定ですか?これらの値に依存する既存のクエリとビューおよびプロシージャが多数ある場合は、構成ファイルからロードしてすべての可能なクエリにパラメータとして送信するよりも簡単であるため、それらを参照データとしてデータベースに配置するのが最善かもしれませんそれらを参照するビュー/プロシージャ。値の大部分がアプリケーションコードで使用される場合は、おそらく構成ファイルの方が適しています。
リンクするもののようなより複雑な例も、プロパティを使用して、または使用せずに実行できます。
products.propertiesで:
productA.name=Product A 123
productA.hasMotor=true
productA.numFeet=1
productA.hasOutlet=true
productA.needsManual=true
productB.name=Product B 456
productB.hasMotor=false
productB.numFeet=1
productB.hasOutlet=true
productB.needsManual=true
あなたの春の設定ファイルで:
<bean name="productA" class="com.mycompany.Product">
<property name="name" value="${productA.name}"/>
<property name="hasMotor" value="${productA.hasMotor}"/>
<!-- rest omitted for brevity -->
</bean>
<bean name="productB" class="com.mycompany.Product">
<property name="name" value="${productB.name}"/>
<property name="hasMotor" value="${productB.hasMotor}"/>
<!-- rest omitted for brevity -->
</bean>
<!-- configure as many beans as needed -->
<bean="motorFrameManager" class="myCompany.MotorFrameManager" >
<property name="motorFrames"> <!-- assumes that MotorFrameManager has a property motorFrames which is a List<Product> -->
<list>
<ref bean="productA"/>
<ref bean="productB"/>
</list>
</property>
</bean>
これの良い点は、ソースデータがスプレッドシートの場合(リンクした質問のように)、Excelのマクロを使用してプロパティとスプリングスニペットを自動的に生成できることです。