Portanto, de acordo com a resposta de Mehrdad a uma pergunta relacionada , entendi que uma coluna de tabela de banco de dados "adequada" não armazena uma lista. Em vez disso, você deve criar outra tabela que contenha efetivamente os elementos dessa lista e, em seguida, vincular a ela diretamente ou por meio de uma tabela de junção. No entanto, o tipo de lista que desejo criar será composto de itens únicos (ao contrário do fruto da pergunta vinculadaexemplo). Além disso, os itens da minha lista são classificados explicitamente - o que significa que se eu armazenasse os elementos em outra tabela, teria que classificá-los sempre que os acessasse. Finalmente, a lista é basicamente atômica, pois sempre que eu quiser acessar a lista, vou querer acessar a lista inteira em vez de apenas um pedaço dela - então parece bobo ter que emitir uma consulta de banco de dados para reunir pedaços de a lista.
A solução de AKX (link acima) é serializar a lista e armazená-la em uma coluna binária. Mas isso também parece inconveniente porque significa que preciso me preocupar com a serialização e a desserialização.
Existe alguma solução melhor? Se não é nenhuma solução melhor, então por quê? Parece que esse problema deve surgir de vez em quando.
... apenas mais algumas informações para que você saiba de onde estou vindo. Assim que comecei a entender SQL e bancos de dados em geral, fui ligado para LINQ to SQL e agora estou um pouco estragado porque espero lidar com meu modelo de objeto de programação sem ter que pensar sobre como os objetos são consultados ou armazenados no banco de dados.
Obrigado a todos!
John
ATUALIZAÇÃO: Então, na primeira onda de respostas que estou recebendo, vejo "você pode seguir a rota CSV / XML ... mas NÃO!". Agora estou procurando explicações do porquê. Mostre-me algumas boas referências.
Além disso, para lhe dar uma ideia melhor do que estou fazendo: Em meu banco de dados, tenho uma tabela de funções que terá uma lista de pares (x, y). (A tabela também terá outras informações que não têm importância para nossa discussão.) Nunca precisarei ver parte da lista de pares (x, y). Em vez disso, pegarei todos eles e os representarei na tela. Permitirei que o usuário arraste os nós para alterar os valores ocasionalmente ou adicionar mais valores ao gráfico.