對於包含1或0的字段,例如is_active,我使用tinyint(1)。我可以使用枚舉('1','0'),但不知道哪些情況下我應該使用枚舉或tinyint。任何意見/建議?我應該使用mysql枚舉或tinyint的值爲1和0的字段?
感謝
的js
對於包含1或0的字段,例如is_active,我使用tinyint(1)。我可以使用枚舉('1','0'),但不知道哪些情況下我應該使用枚舉或tinyint。任何意見/建議?我應該使用mysql枚舉或tinyint的值爲1和0的字段?
感謝
的js
在您的情況下,enum
和tinyint
的大小相同(即1 byte
)。但是,如果數據更改,則enum
選項的靈活性會降低。所以,如果你使用絕對確定你的數據定義不會改變(例如,如果你將來會添加'disabled'
狀態怎麼辦?)。
如果您決定堅持使用enum
,像enum('active', 'not_active')
這樣的定義更實用。
這取決於什麼數據庫引擎選擇引擎蓋下做的。如果你永遠不會超越兩種選擇,我會推薦tinyint - 但我懷疑它有多大的不同。
我個人的偏好是使用TINYINT(1)
。
BOOL,BOOLEAN。這些類型是TINYINT的同義詞(1)
我覺得你應該去tinyint(1)
的enum('active', 'inactive')
將使用枚舉的優點,優於enum(0, 1)
。
ENUM是好的,如果你想擁有特定的值 - 例如:
enum('y','n')
但如果你只需要一個簡單的布爾,使用TINYINT(1)。