我将tinyint(1)用于包含1或0的字段,对于xample,is_active。我可以使用枚举('1','0')但不确定哪些情况我应该使用枚举或tinyint。任何评论/建议?
由于
的js
答案 0 :(得分:2)
在您的情况下,enum
和tinyint
的大小相同(即1 byte
)。但是,如果您的数据发生更改,则enum
选项的灵活性会降低。因此,如果您绝对确定,请使用它,您的数据定义不会更改(例如,如果您将来添加'disabled'
状态会怎样?)。
如果您决定坚持enum
enum('active', 'not_active')
之类的定义更为实用。
答案 1 :(得分:1)
BOOL,BOOLEAN。这些类型是TINYINT(1)
的同义词
我认为你应该选择tinyint(1)
答案 2 :(得分:0)
这取决于数据库引擎选择在引擎盖下做什么。如果你永远不会超越两个选项,我会推荐tinyint - 但我怀疑它有很大的不同。
答案 3 :(得分:0)
我个人的偏好是使用TINYINT(1)
。
答案 4 :(得分:0)
enum('active', 'inactive')
将使用优于enum(0, 1)
的枚举优势。
答案 5 :(得分:0)
如果你想拥有特定的值,枚举很好 - 例如:
enum('y','n')
但是如果你只需要一个简单的布尔值,请使用tinyint(1)。