Tak więc, zgodnie z odpowiedzią Mehrdada na pokrewne pytanie , rozumiem, że „właściwa” kolumna tabeli bazy danych nie przechowuje listy. Należy raczej utworzyć inną tabelę, która skutecznie przechowuje elementy tej listy, a następnie połączyć się z nią bezpośrednio lub za pośrednictwem tabeli skrzyżowań. Jednak typ listy, który chcę utworzyć, będzie składał się z unikalnych elementów (w przeciwieństwie do owocu pytania, do którego prowadzi linkprzykład). Co więcej, pozycje na mojej liście są jawnie posortowane - co oznacza, że gdybym przechowywał elementy w innej tabeli, musiałbym je sortować za każdym razem, gdybym miał do nich dostęp. Wreszcie lista jest w zasadzie atomowa, ponieważ za każdym razem, gdy chcę uzyskać dostęp do listy, będę chciał uzyskać dostęp do całej listy, a nie tylko jej części - więc wydaje się głupie, aby wysłać zapytanie do bazy danych, aby zebrać razem fragmenty Lista.
Rozwiązanie AKX (link powyżej) polega na serializacji listy i przechowywaniu jej w kolumnie binarnej. Ale to również wydaje się niewygodne, ponieważ oznacza, że muszę się martwić serializacją i deserializacją.
Czy jest jakieś lepsze rozwiązanie? Jeśli nie to nie ma lepszego rozwiązania, to dlaczego? Wydaje się, że ten problem od czasu do czasu powinien się pojawiać.
... tylko trochę więcej informacji, abyś wiedział, skąd pochodzę. Gdy tylko zacząłem rozumieć SQL i ogólnie bazy danych, zostałem włączony do LINQ to SQL, więc teraz jestem trochę zepsuty, ponieważ spodziewam się poradzić sobie z moim modelem obiektów programowania bez zastanawiania się, jak obiekty są wyszukiwane lub przechowywane w bazie danych.
Dziękuje wszystkim!
Jan
AKTUALIZACJA: Więc w pierwszej lawinie odpowiedzi, które otrzymuję, widzę „możesz przejść na trasę CSV / XML ... ale NIE!”. Więc teraz szukam wyjaśnienia, dlaczego. Wskaż mi kilka dobrych referencji.
Ponadto, aby dać ci lepsze wyobrażenie o tym, co zamierzam: w mojej bazie danych mam tabelę funkcji, która będzie miała listę par (x, y). (Tabela będzie zawierała również inne informacje, które nie mają znaczenia dla naszej dyskusji). Nigdy nie będę potrzebował widzieć części listy par (x, y). Raczej wezmę je wszystkie i narysuję na ekranie. Pozwolę użytkownikowi przeciągać węzły, aby od czasu do czasu zmieniać wartości lub dodawać więcej wartości do wykresu.