xml w bazie danych

xml w bazie danych
pred
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 4 lata
  • Postów:33
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.

PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 6 godzin
  • Postów:3882
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

abrakadaber
abrakadaber
  • Rejestracja:prawie 13 lat
  • Ostatnio:9 miesięcy
  • Postów:6610
1

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


Chcesz pomocy - pokaż kod - abrakadabra źle działa z techniką.
pred
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 4 lata
  • Postów:33
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.

PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 6 godzin
  • Postów:3882
1

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

pred
  • Rejestracja:ponad 9 lat
  • Ostatnio:ponad 4 lata
  • Postów:33
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 ?

ŁF
Moderator
  • Rejestracja:ponad 22 lata
  • Ostatnio:2 dni
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.


PA
  • Rejestracja:ponad 22 lata
  • Ostatnio:około 6 godzin
  • Postów:3882
1

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

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.