Объявление типов данных в SQLite - PullRequest
2 голосов
/ 13 марта 2010

Я знаком с тем, как сходство типов работает в SQLite: вы можете объявлять типы столбцов как угодно, и все, что имеет значение, это то, содержит ли имя типа "INT", "CHAR", " FLOA "и т. Д. Но существует ли общепринятое соглашение о том, какие имена типов использовать?

Например, если у вас есть целочисленный столбец, лучше ли различать TINYINT, SMALLINT, MEDIUMINT и BIGINT или просто объявить все как INTEGER?

До сих пор я использовал следующее:

  • INTEGER
  • РЕАЛЬНЫЙ
  • CHAR (n) - для строк с известным фиксированным значением
  • VARCHAR (n) - для строк с известной максимальной шириной
  • ТЕКСТ - для всех остальных строк
  • BLOB
  • БУЛЕВЫ
  • ДАТА - строка в формате "ГГГГ-ММ-ДД"
  • TIME - строка в формате «ЧЧ: ММ: СС»
  • TIMESTAMP - строка в формате «ГГГГ-ММ-ДД ЧЧ: ММ: СС»

(Обратите внимание, что последние три противоречат типу сходства.)

Ответы [ 3 ]

1 голос
/ 21 марта 2010

Я бы порекомендовал не использовать самоопределяемые типы. В версии 3.5.6 я заметил, что типы, которые еще не определены, могут иногда вызывать отклонение команды INSERT. Может быть, 1 из 1000. Я не знаю, было ли это решено с тех пор.

В любом случае, нет необходимости в определении размера при вводе столбца TINYINT или SMALLINT. Единственным преимуществом будет использование SQLite вне зависимости от того, используется ли для анализа типов столбцов другая программа или для удовлетворения ваших личных потребностей в чистоте. Поэтому я настоятельно рекомендую использовать базовые типы, определенные SQLite, и придерживаться их.

0 голосов
/ 13 марта 2010

Я собираюсь пойти с Кевином на этот. Короче, вышибись. Придумайте новые области математики, если это соответствует вашей схеме. Используйте имена классов вашего ORM. Или назовите каждый тип (кроме PRIMARY KEY INTEGER) для бывших подружек. В конце концов, SQLite больше о том, как вы получаете доступ к данным и используете их.

0 голосов
/ 13 марта 2010

Поскольку SQLite не имеет типов, используйте любые типы, чтобы вам было проще увидеть, как выглядит схема. Или вы можете сопоставить типы с вашей кодовой базой.

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