Ответы:
MySQL говорит:
Все целочисленные типы могут иметь необязательный (нестандартный) атрибут UNSIGNED. Тип без знака может использоваться для разрешения только неотрицательных чисел в столбце или когда вам нужен больший верхний числовой диапазон для столбца. Например, если для столбца INT задано значение UNSIGNED, размер диапазона столбца будет таким же, но его конечные точки сместятся с -2147483648 и 2147483647 до 0 и 4294967295.
Когда я использую это?
Задайте себе вопрос: будет ли это поле когда-либо содержать отрицательное значение ?
Если ответ «нет», вам нужен UNSIGNED
тип данных.
Распространенной ошибкой является использование первичного ключа, который представляет собой автоинкремент, INT
начинающийся с нуля , однако тип таков SIGNED
, что в этом случае вы никогда не дотронетесь до отрицательных чисел и уменьшите диапазон возможных идентификаторов до половины.
positive
атрибут, поскольку кажется, что еще более распространенным является то, что вы хотите работать только с положительными ненулевыми числами.