O que significa "unsigned" no MySQL e quando devo usá-lo?
O MySQL diz:
Todos os tipos de números inteiros podem ter um atributo opcional (não padrão) UNSIGNED. O tipo não assinado pode ser usado para permitir apenas números não negativos em uma coluna ou quando você precisar de um intervalo numérico superior maior para a coluna. Por exemplo, se uma coluna INT é UNSIGNED, o tamanho do intervalo da coluna é o mesmo, mas seus pontos finais mudam de -2147483648 e 2147483647 até 0 e 4294967295.
Quando eu uso?
Faça a si mesmo esta pergunta: esse campo conterá um valor negativo ?
Se a resposta for não, você deseja um UNSIGNED
tipo de dados.
Um erro comum é usar uma chave primária que é um incremento automático INT
começando em zero , mas o tipo é SIGNED
: nesse caso, você nunca tocará em nenhum dos números negativos e estará reduzindo o intervalo de IDs possíveis para metade.
positive
atributo, pois parece ainda mais comum que você queira trabalhar apenas com números positivos, diferentes de zero.