Digite para usar nas colunas "Status" em uma tabela sql
Tenho uma estrutura de tabela (fictícia) da seguinte maneira:
ticket id: int(11) PK name: varchar(255) status: ?????????
A pergunta é: que tipo de dados devo usar para status? Aqui estão as minhas opções, como eu as vejo:
varchar representando o status - MAU porque não há integridadeenum representando o status - MAU porque para alterar o valor, eu teria que alterar a tabela e, em seguida, qualquer código com menus suspensos para os valores, etc etc etc etcint FK em uma tabela de status - BOM por ser dinâmico, RUIM por ser mais difícil de inspecionar pela vista (o que pode ser útil)varchar FK para uma tabela de status - BOM porque é dinâmico e visível na inspeção. MAU porque as chaves são significativas, o que geralmente é desaprovado. Curiosamente, nesse caso, é perfeitamente possível que a tabela de status tenha apenas 1 coluna, tornando-a uma enumeração glorificadaTenho uma leitura precisa da situação? Ter uma chave significativa é realmente tão ruim assim? Porque enquanto isso me dá arrepios, não tenho motivo para isso ...
Atualizar Para a opção 4, a estrutura proposta seria status: char (4) FK, para uma tabela de status. Então
OPEN => "Abrir"
CLOS => "Fechado"
"PEND" => "Autorização Pendente"
"PROG" => "Em andamento
Qual é a desvantagem neste caso? O único benefício que vejo do uso de int sobre char nesse caso é um desempenho lev