Donc, selon la réponse de Mehrdad à une question connexe , je comprends qu'une colonne de table de base de données "appropriée" ne stocke pas de liste. Au lieu de cela, vous devez créer une autre table qui contient effectivement les éléments de ladite liste, puis créer un lien vers elle directement ou via une table de jonction. Cependant, le type de liste que je souhaite créer sera composé d'éléments uniques (contrairement au fruit de la question liéeexemple). De plus, les éléments de ma liste sont explicitement triés - ce qui signifie que si je stockais les éléments dans une autre table, je devrais les trier chaque fois que j'y accédais. Enfin, la liste est fondamentalement atomique en ce sens que chaque fois que je souhaite accéder à la liste, je veux accéder à la liste entière plutôt qu'à un morceau de celle-ci - il semble donc ridicule de devoir émettre une requête de base de données pour rassembler des éléments de la liste.
La solution d'AKX (lien ci-dessus) est de sérialiser la liste et de la stocker dans une colonne binaire. Mais cela semble également gênant car cela signifie que je dois me soucier de la sérialisation et de la désérialisation.
Y a-t-il une meilleure solution? S'il n'y a pas de solution meilleure, alors pourquoi? Il semble que ce problème devrait survenir de temps en temps.
... juste un peu plus d'informations pour vous dire d'où je viens. Dès que je venais de commencer à comprendre SQL et les bases de données en général, je me suis tourné vers LINQ to SQL, et maintenant je suis un peu gâté car je compte gérer mon modèle d'objet de programmation sans avoir à réfléchir à la façon dont les objets sont interrogés ou stockés dans la base de données.
Merci a tous!
John
MISE À JOUR: Donc, dans la première vague de réponses que j'obtiens, je vois "vous pouvez aller sur la route CSV / XML ... mais NE PAS!". Alors maintenant, je cherche des explications sur pourquoi. Montrez-moi quelques bonnes références.
Aussi, pour vous donner une meilleure idée de ce que je fais: Dans ma base de données, j'ai une table Function qui contiendra une liste de paires (x, y). (Le tableau contiendra également d'autres informations sans conséquence pour notre discussion.) Je n'aurai jamais besoin de voir une partie de la liste des paires (x, y). Je vais plutôt les prendre tous et les tracer à l’écran. Je vais permettre à l'utilisateur de faire glisser les nœuds pour changer les valeurs de temps en temps ou ajouter plus de valeurs au tracé.