Executando verificação de segurança...
1

Eu diria que depende do tipo de banco de dados que você irá usar. Se tiver algum tipo que represente isso de forma estrita é bacana de usar para manter consistência no BD. No MySQL por exemplo eu sei que existe o tipo ENUM que você poderia utilizar:

ENUM('waiting','in_queue','error','closed','success')

O ponto negativo de usar em inteiro é que se isso não for bem documentado (não somente no momento da criação, mas posteriormente, caso seja adicionado algum novo status) pode acabar se tornando um magic number.

Carregando publicação patrocinada...
1
1

minha visão sobre enums do mysql. eu não uso mais.

  1. Enums, internamente, no mysql, são inteiros (então com relação a 'performance', 'indices', etc pode usar numa boa)
  2. Enum não são aceitos no mysql, e minha ferramenta principal, pelos últimos 7,8 anos está sendo o laravel, e sqlite não aceita enum. Ou seja, não consigo usar como driver de banco de dados de testes os sqlite.
  3. Manter enums são chatos. Se tu quer adicinar 1 tipo na tabela, tu tem que escrever 1 migration pra dropar a coluna recriá-la ('culpa' do doctrine ou mysql, e nem do eloquent no caso)
  4. Hoje php tem classes Enum, que funcionam perfeitamente para substituir de maneira mais fácil o campo enum do mysql (se tua aplicação for 'boa', porque não sendo enum tu consegue por qualquer coisa no banco)