我需要创建一个表(在SQLite中),其中包含一个包含“-1”或“+1”的列。为了节省内存,最好不要使用“int”作为列的类型。所以,我想到了“smallint”和“tinyint”。但是smallint不是那么小(从-32,768到32,767)而tinyint只能是正数(从0到255)。还有其他选择或我在这两个选项之间做出选择吗?
提前谢谢。
答案 0 :(得分:6)
SQLite 3仅提供INTEGER
数据类型......
[...]已签名 整数,存储在1,2,3,4,6或8中 字节取决于的大小 价值。
答案 1 :(得分:5)
布尔值可以通过应用程序中的微小处理来完成工作,将布尔值映射到-1或+1。
答案 2 :(得分:3)
如果你的字段中只有两个值,为什么不使用bit / boolean?
答案 3 :(得分:0)
我建议你像其他答案一样建议并使用0/1或者一点代替,但如果你真的需要这样做,你可以在你的代码中,将值从无符号字节转换为char,然后到一个有符号的字节?如果可以,那么然后1(00000001)强制转换为1,而255(11111111)强制转换为-1