Melhores Práticas - meta dados deve e dados que definem funcionais ser misturados?

StackOverflow https://stackoverflow.com/questions/164752

  •  03-07-2019
  •  | 
  •  

Pergunta

Considere o caso de uma aplicação web reportagem simples que tem uma coluna de tabela DB de "Status", que é acessível por um conjunto botão de opção de:

Status - [x] Publicar [] projecto [de] Arquivo

... onde "Publicar" mostra um artigo publicamente e "Rascunho" e "Arquivo" não. Funcionalmente "Rascunho" e "Arquivo" fazer a mesma coisa, mas carregam significados dados meta adicionais. Os dois estados funcionais do "show" e "esconder", juntamente com os dados de meta de "publicar", "rascunho" e "arquivo" são misturados na mesma coluna de "status".

Esta é uma boa prática? Enquanto este é um caso muito simples, casos maiores podem revelar falhas com tal prática um (ou não ...).

Foi útil?

Solução

estados funcionais são sobre o comportamento - eles não precisam ser modelados em seu banco de dados. Se a sua lógica de negócios só se preocupa com "mostrando" artigos com um status de "Publicado". - não há nenhuma razão para dobrar a complexidade de seus dados com um show coluna

No ponto em que você decidir suas necessidades de lógica de negócios dados adicionais para fazer a decisão de mostrar ou ocultar um artigo (talvez uma bandeira IsApproved), então você pode armazenar esses dados.

Olhando para ele de um ângulo diferente - se você fosse adicionar outra coluna de "Show", em seguida, o que seria um artigo com um status de "Rascunho" e "Show" = 1 faz? De acordo com suas regras de negócios, que é um estado inválido.

Outras dicas

Neste caso, eu diria que esta é a funcionalidade adequada.

Nós todos vimos WTF de nos meios de comunicação em que alguém acidentalmente atingiu programa [x] e projecto [x] ao mesmo tempo.

O jeito que está agora, é impossível mostrar acidentalmente um projecto. Isto é importante em jornais como repórteres são notórios por coisas como:

John Doe, de StackOverflow disse: "--- Eu não consigo lembrar o que isso feio f * cker disse - Verifique a fita e preencha mais tarde"

O que provavelmente não deve ser impresso.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top