Cosa si fa con un pezzo di dati di una tantum che ha bisogno di essere persistente?

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

  •  23-08-2019
  •  | 
  •  

Domanda

Recentemente sono stato chiesto di aggiungere qualcosa per l'amministratore di un sito dove si può 'funzione' qualcosa.

Per questa discussione diciamo che è un 'articolo in primo piano'.

Così, naturalmente, abbiamo già un modello di database di 'articoli' e ha ~ 20 colonne in quanto è così davvero non voglia gonfiore è più di quanto lo sia già.

Le mie opzioni:

  1. Tack su un bool 'optional' (o int) e rendersi conto che solo una cosa saranno presenti in un dato momento

  2. Crea un nuovo modello di tenere questo e tutti gli altri elementi di funzionalità di scorrimento che potrebbero pop-up.

  3. Prendo i vostri suggerimenti! ;)

Che cosa fare in questo caso? Mi imbatto in questo ogni tanto e ho solo odio dover virare su un altro colonna per qualcosa. Questa informazione ha bisogno di essere mantenuta.

È stato utile?

Soluzione

Se un solo articolo può essere presentato in un momento che è uno spreco di aggiungere una colonna bool. Si dovrebbe salire di un livello e aggiungere una colonna per il FeaturedArticleID. Avete un tavolo Site_Settings?

Altri suggerimenti

Probabilmente sarei solo aggiungere una semplice tabella a due colonne che è fondamentalmente un negozio di valori-chiave. Quindi aggiungere una nuova colonna con i valori come (featured_article_id, 45) o qualunque sia il primo ID In primo piano è.

Edit: come sottolineato nei commenti di rmeador, va notato che questa è solo una buona soluzione a patto che le cose rimangono relativamente semplice. Se avete bisogno di memorizzare i dati più complesso, in considerazione per capire una soluzione più flessibile.

Si potrebbe utilizzare un modello estendibile come avere una tabella di attributi, e quindi una tabella di collegamento per formare una relazione molti-a-molti tra gli articoli e gli attributi. In questo modo, questi tipi di caratteristiche non richiedono lo schema da modificare.

avere un qualche tipo di tavolo global_settings con un parameter_name e colonne parameter_value. Mettere in vetrina articolo id qui.

Per le cose veloce-e-sporco come questo, mi piace di includere una sorta di tabella Impostazioni:

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

Se avete bisogno per utente o per cliente impostazioni, al posto di quelle globali, è possibile aggiungere una colonna per identificarlo per quello specifico utente / cliente. Poi, si può solo aggiungere una riga per "FeaturedArticle" e analizzare l'ID da una stringa. Non è super-ottimizzato, ma chiaro è molto flessibile, che suona come esattamente quello che ti serve.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top