2011-07-26 36 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

我的意思是使用存儲在數據庫中的字符串值,而不是數字,我瞭解,您正在考慮。 –

相關問題