Какая разница между разными IntegerField?

Добрый вечер. Изучаю Django. Подскажите, пожалуйста, какая разница между BigIntegerField, PositiveIntegerField, SmallIntegerField, IntegerField и другими типовыми полями?

UPD: как это влияет на БД и в чём выгода использования конкретных типов полей?
  • Вопрос задан
  • 1564 просмотра
Решения вопроса 1
fox_12
@fox_12 Куратор тега Django
Расставляю биты, управляю заряженными частицами
UPD: как это влияет на БД и в чём выгода использования конкретных типов полей?

Если используется PostgreSQL - то там про эти типы данных написано:
Тип integer (4 байта - диапазон от -2147483648 до +2147483647) - обычный выбор, дающий баланс между диапазоном, занимаемым местом и производительностью. Тип smallint (2 байта, диапазон -32768 до +32767) обычно используется когда необходима экономия места на диске. Тип bigint (8 байт, диапазон -9223372036854775808 до 9223372036854775807) следует использовать только если диапазона integer не хватает, поскольку выборки integer значительно производительнее.
Ну и соответственно Positive... следует использовать в тех случаях когда у вас используются только положительные числа - к примеру коды товаров, дабы избежать ошибок.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
BigIntegerField может хранить значения от -9223372036854775808 до 9223372036854775807
PositiveIntegerField только положительные числа от 0 до 2147483647
SmallIntegerField значения от -32768 до 32767
IntegerField значения от -2147483648 до 2147483647
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы