我会选择第三个选项:配置文件!
对于我正在使用的应用程序(在Java中,因此所有示例都使用Java + Spring),此类值通常存储在配置文件中,并在应用程序启动时(通过Spring)注入需要它们的代码中。在属性文件中:
motorFramesString=412T, 413T, ...
在spring配置中:
<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
在您的spring配置文件中:
<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中使用宏来自动生成属性和弹簧片段。