2015-04-16 1 views
-3

Я разработчик Android. Я хочу создать таблицу на SQLite3, и мне нужен столбец для булевого типа. Я могу определить столбец, тип integer, а значение использовать только 0 и 1. Я также могу использовать столбец, который является типом text (char), и использовать значение «T», «F». который один меньше и быстрее?следует использовать целое число или текст на sqlite3

+0

"Integer. Значение представляет собой целое число со знаком, хранится в 1, 2, 3, 4, 6 или 8 байт в зависимости от величины значения." Я думаю, использование 1 байт для хранения BOOL не так уж плохо –

+0

Большое спасибо. Но если я использую тип текста, он будет сохранен как текст UTF-8, «T» и «F» - это символ ascii, также будет использовать один байт, не так ли? – user3717061

+1

@DerGolem UTF-8 использует один байт на символ ASCII. И как вы можете видеть в [документации] (http://www.sqlite.org/fileformat2.html#record_format), целые числа 0 и 1 используют * ноль * байты (эти значения обрабатываются с помощью последовательных типов). –

ответ

3

Вы должны использовать целое число, потому что предлагается в официальной документации,

SQLite не имеет отдельного булеву класса хранения. Вместо этого булевые значения сохраняются как целые числа 0 (ложь) и 1 (истина).

See Docs

+0

Спасибо, я понял. – user3717061

+0

@ user3717061 Я рад, что это помогло, если мой ответ помог вам отметить его как принятый ответ. – aProgrammer