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 glorificada

Tenho 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

questionAnswers(7)

yourAnswerToTheQuestion