将枚举镜像作为文档形式保存在数据库中是最佳做法吗?

时间:2011-07-26 17:32:56

标签: database-design language-agnostic

我在代码中有一个枚举

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数字意味着什么的文档。我应该完全删除这些数字并使用字符串吗?

1 个答案:

答案 0 :(得分:1)

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

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