Итак, согласно ответу Мехрдада на связанный вопрос , я понял, что «правильный» столбец таблицы базы данных не хранит список. Скорее, вы должны создать другую таблицу, которая эффективно содержит элементы указанного списка, а затем связать с ней напрямую или через таблицу соединений. Однако тип списка, который я хочу создать, будет состоять из уникальных элементов (в отличие от плода связанного вопросапример). Кроме того, элементы в моем списке явно отсортированы - это означает, что если бы я сохранил элементы в другой таблице, мне пришлось бы сортировать их каждый раз, когда я к ним обращался. Наконец, список в основном является атомарным в том смысле, что каждый раз, когда я хочу получить доступ к списку, я захочу получить доступ ко всему списку, а не только к его части, поэтому кажется глупым создавать запрос к базе данных, чтобы собрать вместе части список.
Решение AKX (ссылка выше) - сериализовать список и сохранить его в двоичном столбце. Но это также кажется неудобным, потому что это означает, что мне нужно беспокоиться о сериализации и десериализации.
Есть ли лучшее решение? Если нет никакого лучшего решения, то почему? Кажется, что эта проблема должна время от времени возникать.
... еще немного информации, чтобы вы знали, откуда я. Как только я только начал разбираться в SQL и базах данных в целом, меня включили в LINQ to SQL, и теперь я немного избалован, потому что рассчитываю работать со своей объектной моделью программирования, не задумываясь о том, как объекты запрашиваются или хранятся в базе данных.
Спасибо всем!
Джон
ОБНОВЛЕНИЕ: Итак, в первом шквале ответов, которые я получаю, я вижу «вы можете пойти по маршруту CSV / XML ... но НЕ НУЖНО!». Итак, теперь я ищу объяснения, почему. Укажите мне несколько хороших ссылок.
Кроме того, чтобы вы лучше понимали, чем я занимаюсь: в моей базе данных есть таблица функций, в которой будет список пар (x, y). (В таблице также будет другая информация, не имеющая значения для нашего обсуждения.) Мне никогда не понадобится видеть часть списка пар (x, y). Скорее, я возьму их все и нанесу на экран. Я разрешаю пользователю перетаскивать узлы, чтобы время от времени изменять значения или добавлять дополнительные значения к графику.