Durante la nostra ultima riunione settimanale, una persona che non ha esperienza in amministrazione dei database ha sollevato questa domanda:
"Ci sarebbe uno scenario che giustifica l'archiviazione dei dati in linea (stringa) anziché diverse righe?"
Supponiamo che un tavolo chiamato countryStates
dove vogliamo memorizzare gli stati di un paese; Userò gli Stati Uniti per questo esempio e non elencherò tutti gli Stati per motivi di pigrizia.
Lì avremmo due colonne; uno ha chiamato Country
e l'altro ha chiamato States
. Come discusso qui , e proposto dalla risposta di @srutzky , PK
sarà il codice definito da ISO 3166-1 alpha-3 .
La nostra tabella sarebbe simile a questa:
+---------+-----------------------+-------------------------------------------------------+
| Country | States | StateName |
+---------+-----------------------+-------------------------------------------------------+
| USA | AL, CA, FL,OH, NY, WY | Alabama, California, Florida, Ohio, New York, Wyoming |
+---------+-----------------------+-------------------------------------------------------+
Quando ha posto la stessa domanda a un amico sviluppatore, ha detto che dal punto di vista delle dimensioni del traffico dati, questo potrebbe essere utile, ma non se dobbiamo manipolare questi dati. In questo caso dovrebbe esserci un'intelligence sul codice dell'applicazione che potrebbe trasformare questa stringa in un elenco (diciamo che il software che ha accesso a questa tabella deve creare una casella combinata).
Abbiamo concluso che questo modello non è molto utile, ma ho avuto il sospetto che potrebbe esserci un modo per renderlo utile.
Quello che vorrei chiedere è se qualcuno di voi ha già visto, sentito o fatto qualcosa del genere in un modo che funziona davvero .
a;b;c
, utilizzare il front-end per analizzare la stringa si quindi ottenere a
, b
, c
e continuare l'esecuzione di fare qualcosa con loro, forse ?. Senti che potrebbe soddisfare una sorta di bisogno specifico in quel modo ... A pensarci bene, no. Puoi sempre archiviare gli ID, unirti ai tuoi tavoli e creare una stringa concatenata che può inviare contenuto alla FE ...