xml w bazie danych

0

Witam.

Następujący problem:
Do każdego wydarzenia jest przypisana lista użytkowników którzy wezmą w nim udział. Lista się zmienia. Można się zapisywać/wypisywać. Jeśli użytkownik się zapisze, to podaje też kilka innych parametrów, np którą stronę wybrał, rodzaj kamuflażu itp.

Zastanawiam się jak najlepiej byłoby przechowywać te listy w bazie danych. Przyszło mi takie coś do głowy, że lista będzie miała ID które będzie odpowiadało ID wydarzenia. W ten sposób będzie łatwo wyszukać odpowiednią listę która będzie wyświetlana jeśli użytkownik kliknie w szczegóły wydarzenia.

Listę zapisanych użytkowników chcę przechowywać jako plik xml w bazie danych mssql. Mam już connection string i bazę danych która już coś tam zawiera. Nowa tabela, o ile się nie mylę, powinna mieć dwie kolumny: typu int (id) i xml (content) - stworzyłem do tego odpowiedni model. Niestety kompletnie nie wiem jak zapisać cały plik xml do bazy danych, czy może trzeba go w jakiś sposób konwertować ?

Jeszcze inne rozwiązanie. Możeby stworzyć bazę danych typu XML na dysku ? Wyszukiwanie w takiej bazie danych odpowiedniej listy użytkowników wydaje się dość proste.

1

Ja za bardzo nie widzę sensu ładowania tego do XML-a

Zakładając,że masz tabelę wydarzenia i użytkownicy,stworzyłbym tablę uczestnicy z kolumnami idwydarzenia i idużytkownika jako klucz główny, + kolumny z parametrami uczestnika

Jeżeli koniecznie chcesz robić to via XML to:
http://stackoverflow.com/questions/13881384/best-way-to-insert-large-xml-files-into-xml-columns-on-remote-sql-server

1

xml tutaj jest bez sensu. Chyba że zastąpisz całkowicie bazę danych xmlem

0

Panczo

czy masz na myśli coś takiego ?
http://images.tinypic.pl/i/00784/ah2tu7wskuls.jpg

Po prostu mam wybierać z tabeli interesujących mnie użytkowników ? (zaznaczone na zielono). Nie będzie to zbyt wolne, gdy będzie ich w tej tabeli kilka tysięcy ? Do każdego wydarzenia można liczyć spokojnie około 20 osób, więc to będzie dość szybko rosło.

1

Dokładnie o to mi chodziło, klika tysięcy to naprawdę nie problem...

0

Zamierzam jeszcze podzieli wydarzenia ze względu na województwa. Czy należałoby stworzyć dla każdego województwa oddzielne tabele (jedna z wydarzeniami, druga z zapisanymi użytkownikami) w bazie danych ? To da razem 32 tabele. Czy może trzymać wszystko tylko w dwóch ?

2

A potem jak wpadniesz na pomysł zrobienia zmiany w którejś z tabel, to będziesz to musiał poprawiać w 16 miejscach? Zapoznaj się z DRY - kodu się nie powtarza, nieważne, czy to sql, struktura danych, C# czy js.
Dobrze zaprojektowana baza danych poradzi sobie dobrze nie z tysiącami, a z milionami rekordów, a po pewnych optymalizacjach (rozwalających 3PN) także z setkami milionów i wyżej.

1

Województwo to atrybut opisujący wydarzenie nie widzę potrzeby rozdzielania tego na osobne tabele

1 użytkowników online, w tym zalogowanych: 0, gości: 1