遵循this question的精神,在Delphi中将枚举存储在数据库中的理想方法是什么?我有几个查找表来指导一些业务逻辑,因此a)它们与我的代码紧密耦合,b)它们可能会在新版本中发生变化。
现在我通过保存其数值并明确设置枚举值来实现。
type TSuit = (Unknown = 4, Heart = 1, Club = 3, Diamond = 2, Spade = 0);
你知道更好的方法吗?
答案 0 :(得分:3)
给定关系模型,您可能应该将枚举的值存储到手头的表中,并创建另一个存储枚举值+名称的表。后者可以完全由RTTI创建。
所以给出你的例子:你有像Card表这样的东西,其中Suit是一个字节字段,值为0..4。你有一个5个记录的套装表,每个枚举值一个。
现在您的数据已正确规范化并且元数据存在,您知道Suit = 2的含义(例如,使用Suits表加入)。