2011-08-09 30 views
0

您在項目中使用ENUM/SET字段類型,還是使用VARCHAR/INT字段並在代碼中定義可用值?最佳做法是什麼?使用或不使用ENUM/SET類型?

避免使用ENUM/SET似乎更容易維護,因爲我們必須僅在代碼中更改值(不是數據庫和代碼)。

謝謝。

回答

3

它不可能回答這個問題,不知道你的項目是什麼,你的數據是什麼樣的,等

一般而言,其限制使用ENUM,並且還限制直接在代碼中定義值。如果您需要對其中任一項進行更改,如果需要「ALTER」或編輯您的代碼。如果您創建單獨的表來存儲可接受的值,並使用外鍵鏈接到該表,則可以輕鬆添加和編輯屬性,而無需更改任何定義或代碼。

編輯:它也使屬性可以訪問您的代碼。

+1

在必須修改一個數百萬行的表來添加一個新的ENUM值之後,我纔會使用它們,當我知道值不會像星期幾那樣變化時。在巨大的桌子上限制但不那麼痛苦。 –

1

我用枚舉,但是對於搜索/性能,最好使用INT