例如,我有一个表名Fruit
,每个水果都属于FruitType
。我应该将FruitType
存储在数据库中,然后在Fruit
中创建一个外键,或者只将参考ID存储到Enum
名称FruitType
更新:
该数据库仅用于一个应用程序。我需要向用户显示fruit
包括他们的fruit type
的表。我还在水果表视图中使用type作为过滤器。
我目前的解决方案:
我Enum
总是Type
。但
如果Type
提供的信息不仅仅是id
和name
,而是description
...我还会将其存储在数据库中,以便我可以使用参考视图来显示所有{ {1}}信息。其他明智的只是Type
。
答案 0 :(得分:3)
您必须使用数据库来保存FruitType
。我将用两种方式解释为'FruitType'实现枚举。我以为你正在使用javax.persistance
。
enum FruitType {
YELLOW,GREEN,RED;
}
class Fruit{
private String name;
@Enumerated(EnumType.ORDINAL) or @Enumerated(EnumType.STRING)
private FruitType fruitType;
}
如果您使用EnumType.STRING,则保存枚举的字符串名称(黄色,红色)。对于EnumType.ORDINAL保存顺序,如1,2等。
如果您计划处理(添加,更新和删除)许多FruitTypes,那么请使用另一个表来保存数据。
答案 1 :(得分:1)
如果您的类型是静态的,并且您不想在应用工作时间添加它们,那么最好使用枚举。如果真的有很多类型或者可以在飞行中添加/更改类型,最好将它们存储在单独的数据库表中并设置关系。