我应该使用什么数据类型来表示0到3之间的值

时间:2012-05-30 16:29:18

标签: mysql sql database-design

我在数据库中的字段只包含3个可能的值:0,1和2.所以,我想知道我应该使用什么数据类型?我发现this似乎我应该使用tinyint(1),但是它的范围是-127到126,所以我想知道我的选择还是实际上有更好的东西?

3 个答案:

答案 0 :(得分:5)

tinyint(1) unsigned可能适合此

答案 1 :(得分:0)

不推荐但是...我最初在想空间是否真的是一个值得探索的大问题。

如果你可以使用NULL,0,1而不是0,1,2,那么boolean / bit也可以工作。

然而,看起来像boolean和tinyint几乎是一样的。 tinyint是mysql中所有数据类型的最小占用空间。请参阅link

答案 2 :(得分:0)

如果您希望确保输入的数字仅为0,1或2,那么最好在表格中添加CHECK约束。

ALTER TABLE
    tableName
ADD CONSTRAINT 
    checkConstain
CHECK (columnName BETWEEN 0 and 2)

您可以在SQL Fiddel

上看到此示例