O que você faz com um one-off pedaço de dados que precisam ser persistentes?

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

  •  23-08-2019
  •  | 
  •  

Pergunta

Recentemente eu tenho sido solicitado para adicionar algo para o administrador de um site onde ele pode 'recurso' alguma coisa.

Para esta discussão, vamos dizer que é um 'artigo destacado'.

Então, naturalmente, nós já temos um modelo de banco de dados de 'artigos' e tem ~ 20 colunas, pois é assim que eu realmente não me sinto como inchaço-lo mais do que já é.

As minhas opções:

  1. Tack em um 'destaque' bool (ou int) e perceber que apenas uma coisa será apresentado a qualquer momento

  2. Criar um novo modelo para manter este e todos os outros artigos recurso de fluência que possam aparecer.

  3. Eu tomo suas sugestões! ;)

O que você faz neste caso? Venho através desta vez em quando e eu simplesmente odeio ter que orçada em mais uma coluna para alguma coisa. Estas informações não precisam ser persistentes.

Foi útil?

Solução

Se apenas um artigo pode ser apresentado em um momento que é um desperdício para adicionar uma coluna bool. Você deve ir para um nível acima e adicionar uma coluna para o FeaturedArticleID. Você tem uma tabela Site_Settings?

Outras dicas

Eu provavelmente apenas adicionar uma tabela de duas colunas simples que é basicamente um armazenamento de chave-valor. Em seguida, adicione uma nova coluna com valores como (featured_article_id, 45) ou qualquer que seja o primeiro ID destaque é.

Edit: como apontado nos comentários por rmeador, deve-se notar que esta é apenas uma solução boa contanto que as coisas ficar relativamente simples. Se você precisar armazenar dados mais complexo, considere descobrir uma solução mais flexível.

Você pode usar um modelo extensível como ter uma tabela de atributos, e, em seguida, uma tabela ligando para formar um relacionamento muitos-para-muitos entre artigos e atributos. Desta forma, estes tipos de recursos não exigem que o esquema a ser modificada.

Tenha algum tipo de mesa global_settings com um parameter_name e colunas parameter_value. Coloque em exibição ID do artigo aqui.

Para coisas rápida e suja como este, eu gostaria de incluir algum tipo de tabela de configurações:

CREATE TABLE Settings (
    SettingName NVARCHAR(250) NOT NULL,
    SettingValue NVARCHAR(250)
)

Se você precisar por usuário ou por cliente configurações, em vez dos globais, você pode adicionar uma coluna para identificá-lo para esse usuário específico / cliente. Então, você poderia simplesmente adicionar uma linha para "FeaturedArticle" e analisar o ID de uma string. Não é super-otimizado, mas plaintext é muito flexível, que soa como exatamente o que você precisa.

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