我应该将 Type 存储在数据库中还是应该将其存储在枚举中?

Should I store Type in database or should I store it in enum?

比如我有一个table名字Fruit,每个水果属于一个FruitType。所以我应该将 FruitType 存储在数据库中,然后在 Fruit 中创建一个外键,还是只将引用 ID 存储到 Enum name FruitType

更新:
该数据库仅用于一个应用程序。我需要显示 fruit 的 table 包括它们的 fruit type 到 user.I 也使用类型作为 fruit table 视图中的过滤器。

我目前的解决方案:
对于 Type,我将永远有一个 Enum。但 如果 Type 的信息不仅仅是 idname,即 description ... =19=]信息。否则只是 Enum.

如果您的类型是静态的并且您不想在应用工作期间添加它们,那么最好使用枚举。如果确实有很多类型,或者类型可能 added/changed 动态,最好将它们存储在单独的数据库中 table 并设置关系。

您必须使用数据库来保存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,则保存枚举的字符串名称,如 (YELLOW, RED)。对于 EnumType.ORDINAL 保存顺序,如 1,2 等

如果您打算处理(添加、更新和删除)大量 FruitType,则使用另一个 table 来保存数据。