Lors de notre dernière réunion hebdomadaire, une personne qui n'a aucune expérience en administration de base de données a soulevé cette question:
"Y aurait-il un scénario qui justifie le stockage de données en ligne (chaîne) au lieu de plusieurs lignes?"
Supposons un tableau appelé countryStates
où nous voulons stocker les états d'un pays; J'utiliserai les États-Unis pour cet exemple et ne listerai pas tous les États par souci de paresse.
Là, nous aurions deux colonnes; l'un appelé Country
et l'autre appelé States
. Comme discuté ici , et proposé par la réponse de @ srutzky , le PK
sera le code défini par ISO 3166-1 alpha-3 .
Notre table ressemblerait à ceci:
+---------+-----------------------+-------------------------------------------------------+
| Country | States | StateName |
+---------+-----------------------+-------------------------------------------------------+
| USA | AL, CA, FL,OH, NY, WY | Alabama, California, Florida, Ohio, New York, Wyoming |
+---------+-----------------------+-------------------------------------------------------+
En posant cette même question à un ami développeur, il a dit que du point de vue de la taille du trafic de données, cela pourrait être utile, mais pas si nous devons manipuler ces données. Dans ce cas, il devrait y avoir une intelligence sur le code d'application qui pourrait transformer cette chaîne en liste (disons que le logiciel qui a accès à cette table doit créer une zone de liste déroulante).
Nous avons conclu que ce modèle n'est pas très utile, mais je me méfie qu'il pourrait y avoir un moyen de le rendre utile.
Ce que j'aimerais demander, c'est si l'un d'entre vous a déjà vu, entendu ou fait quelque chose comme ça d'une manière qui fonctionne vraiment .
a;b;c
, utilisez l'avant pour analyser votre chaîne vous obtenez alors a
, b
, c
et continuez l' exécution de faire quelque chose avec eux, peut - être ?. Sentez-vous que cela pourrait répondre à une sorte de besoin spécifique de cette façon ... À la réflexion, non. Vous pouvez toujours stocker des ID, rejoindre vos tables et créer une chaîne concaténée qui peut envoyer du contenu à la FE ...