2011-07-26 10 views
0

我在代码将枚举映射到数据库中作为文档形式的最佳做法是什么?

enum EventType 
{ 
    Run = 1, 
    Stop = 2, 
} 

枚举我有一个表在我的数据库

CREATE TABLE [Event] (
    [Id] integer PRIMARY KEY AUTOINCREMENT, 
    [EventType] integer NOT NULL, 
    [Timestamp] text NOT NULL 
); 

应该我,如果我不真的需要?

CREATE TABLE [EventType] (
    [EventTypeId] integer PRIMARY KEY AUTOINCREMENT, 
    [Name] text 
); 
INSERT INTO "EventType" VALUES(1, "Run"); 
INSERT INTO "EventType" VALUES(2, "Stop"); 

这是不好的,因为它是代码重复。这很好,因为它是访问数据库的人员的文档,并且想知道那些EventType数字的含义。我应该完全放弃这些数字并使用字符串吗?

+0

好吧,超出简单文档的一个好处是,如果/当您尝试从另一个系统访问数据库时,您就有了生成已知正确枚举的方法。 –

回答

1

我不会为了记录事情而创建额外的表。它增加了整体的复杂性,因此使用户长期以来比用户不知道这些数字是多少。

我个人喜欢在数据库中使用字符串枚举,因为它使它自我记录。不过,可能会有不同的意见。

+0

什么是字符串枚举?这是一个数据库特有的功能吗?我正在使用SQLite ... –

+1

我的意思是使用存储在数据库中的字符串值,而不是数字,我了解,您正在考虑。 –

相关问题