¿Qué se hace con una pieza de datos de una sola vez que necesita ser mantenido?

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

  •  23-08-2019
  •  | 
  •  

Pregunta

Recientemente he estado solicitado añadir en algo para el administrador de un sitio donde se puede 'característica' algo.

Para esta discusión, digamos que es un 'artículo destacado'.

Así que, naturalmente, ya tenemos un modelo de base de datos de 'artículos' y tiene ~ 20 columnas, ya que es lo que realmente no me siento como hinchazón nunca más de lo que ya es.

Mis opciones:

  1. Tack en un bool 'ofrecido' (o int) y darse cuenta de que sólo una cosa se presentará en un momento dado

  2. Crear un nuevo modelo para sostener esto y cualquier otro artículo de características de fluencia que puedan aparecer.

  3. tomo sus sugerencias! ;)

¿Qué hacer en este caso? Me encuentro con esto de vez en cuando y que odio tener que virar en una columna más a algo. Esta información tiene por qué ser persistido.

¿Fue útil?

Solución

Si sólo hay un artículo puede ser presentado en un momento en que es una pérdida para agregar una columna bool. Hay que ir a un nivel superior y añadir una columna para el FeaturedArticleID. ¿Tiene una mesa Site_Settings?

Otros consejos

probablemente me acaba de añadir una sencilla tabla de dos columnas que se trata básicamente de un almacén de claves-valor. A continuación, añadir una nueva columna con valores como (featured_article_id, 45) o lo que sea el primer ID destacado es.

Edit: como se señala en los comentarios de rmeador, debe tenerse en cuenta que esto es sólo una buena solución, siempre y cuando las cosas se mantienen relativamente simple. Si necesita almacenar datos más complejos, considere averiguar una solución más flexible.

Se podría utilizar un modelo extensible como tener una tabla de atributos, y luego una mesa de enlace para formar una relación de muchos a muchos entre los artículos y atributos. De esta manera, este tipo de características no requieren el esquema que se desea modificar.

Tener algún tipo de mesa global_settings con un nombre_parámetro y columnas parameter_value. Ponga Artículo Destacado Identificación aquí.

Para la materia rápida y sucia como esta, me gusta incluir algún tipo de tabla Configuración:

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

Si necesita por usuario o por cliente configuración, en lugar de los globales, se puede agregar una columna para identificar a ese usuario / cliente específico. Entonces, usted podría añadir una fila para "FeaturedArticle" y analizar el ID de una cadena. No está optimizado estupendo, pero en texto plano es muy flexible, que suena como exactamente lo que necesita.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top