在Delphi中将枚举存储在数据库中的最佳方法是什么?

时间:2012-02-04 17:11:31

标签: database delphi enums

遵循this question的精神,在Delphi中将枚举存储在数据库中的理想方法是什么?我有几个查找表来指导一些业务逻辑,因此a)它们与我的代码紧密耦合,b)它们可能会在新版本中发生变化。

现在我通过保存其数值并明确设置枚举值来实现。

type TSuit = (Unknown = 4, Heart = 1, Club = 3, Diamond = 2, Spade = 0);

你知道更好的方法吗?

1 个答案:

答案 0 :(得分:3)

给定关系模型,您可能应该将枚举的值存储到手头的表中,并创建另一个存储枚举值+名称的表。后者可以完全由RTTI创建。

所以给出你的例子:你有像Card表这样的东西,其中Suit是一个字节字段,值为0..4。你有一个5个记录的套装表,每个枚举值一个。

现在您的数据已正确规范化并且元数据存在,您知道Suit = 2的含义(例如,使用Suits表加入)。