Могу ли я иметь отрицательный tinyint в SQLite? - PullRequest
3 голосов
/ 02 октября 2009

Мне нужно создать таблицу (в SQLite) со столбцом, который содержит «-1» или «+1». Для экономии памяти лучше не использовать «int» в качестве типа столбца. Итак, я подумал о «smallint» и «tinyint». Но smallint не так мал (от -32 768 до 32 767), а tinyint может быть только положительным (от 0 до 255). Есть ли другие варианты или у меня есть выбор между этими двумя?

Заранее спасибо.

Ответы [ 4 ]

6 голосов
/ 02 октября 2009

SQLite 3 представляет только тип данных INTEGER, который ...

[...] является подписанным целое число, хранится в 1, 2, 3, 4, 6 или 8 байты в зависимости от величины значение.

Источник: http://www.sqlite.org/datatype3.html

5 голосов
/ 02 октября 2009

Boolean будет выполнять работу с крошечной обработкой в ​​приложении для отображения логического значения -1 или + 1.

3 голосов
/ 02 октября 2009

Если ваше поле может содержать только два значения, почему бы не использовать бит / логическое значение?

0 голосов
/ 02 октября 2009

Я рекомендую вам делать так, как предлагают другие ответы, и использовать 0/1 или бит вместо этого, но если вам действительно нужно это сделать, можете ли вы в своем коде преобразовать значение из байта без знака в символ и затем в подписанный байт? Если вы можете, то Тогда 1 (00000001) - 1, а 255 (11111111) - -1

.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...