Em geral, eu sempre uso Ints. Eu sei que, em teoria, essa não é a melhor prática, pois você deve usar o menor tipo de dados que será garantido para armazenar os dados.
Por exemplo, é melhor usar tinyint
quando você sabe que os únicos dados que você armazenará são 1, 0 ou nulo (com uma chance muito pequena de expandi-lo para 2 ou 3 depois).
No entanto, a única razão que conheço para fazer isso é para fins de armazenamento - usando 1 byte em uma linha em vez de 4 bytes.
Quais são os impactos do uso tinyint
(ou smallint
mesmo bigint
) int
além de economizar espaço no disco rígido?
I'd use an ENUM for such a thing.
Não no SQL Server, você não teria, pois ele não possui enumerações de nenhum tipo.