Muitos aplicativos exigem que os registros em suas tabelas tenham um status, como 'completo', 'rascunho', 'cancelado'. Qual é a melhor maneira de armazenar esses status? Para ilustrar o que estou chegando aqui, é um exemplo * muito curto).
Eu tenho um aplicativo de blog simples e cada post tem um status: publicado, rascunho ou pendente.
Do jeito que eu vejo, existem 2 maneiras de modelar isso no banco de dados.
- A tabela Postagem possui um campo de texto que inclui o texto de status.
- A tabela Post tem um campo de status que contém o ID de um registro na tabela PostStatus
O exemplo do Blog aqui é um exemplo muito simples. Onde uma enumeração (se suportada) pode ser suficiente. No entanto, gostaria que as respostas à pergunta levassem em conta que a lista de status pode mudar a qualquer momento, para que mais possam ser adicionadas ou removidas.
Alguém pode explicar as vantagens / desvantagens de cada um?
Felicidades!
Minha opinião inicial é que é melhor usar outra tabela e procurar o status como melhor para a normalização. Sempre fui ensinado que a normalização é boa para bancos de dados