Pracuję nad małym projektem, który będzie miał tylko jednego użytkownika na raz, ponieważ jest to aplikacja lokalna (opracowana w WPF i C #). Do przechowywania danych myślałem o użyciu pliku XML, ale zastanawiam się, czy byłoby to najlepsze podejście.
Do czego służą dane:
- Harmonogramy
- Biblioteka plików w folderach (z nazwą wykonawcy, tytułem, lokalizacją na dysku twardym)
- Prawdopodobnie statystyki oparte na danych harmonogramu
- ...
Wyobrażam sobie, że informacje dotyczące biblioteki w XML byłyby w porządku, ale o całej reszcie nie jestem tego taki pewien. Również LINQ to SQL wydaje się być znacznie bardziej opłacalny pod względem szybkości programowania niż LINQ to XML. Czy to prawda, czy się mylę? Nie byłem pewien, czy powinienem to opublikować na SO, czy tutaj, ale tutaj wydawało się to bardziej odpowiednie!
Z góry dziękuję
Odpowiedzi:
Jeśli będziesz robić dużo IO, SQL jest lepszym wyborem. SQL został zaprojektowany tak, aby działał dobrze w celu pobierania / przechowywania danych, dlatego używamy go do przechowywania danych na czymś takim jak strona internetowa w przeciwieństwie do XML.
XML jest dobry dla danych czytelnych dla ludzi, które mogą być współużytkowane i interpretowane między aplikacjami, tak jak to było jego intencją. Parsowanie XML wymaga WIELU manipulacji ciągami, które mogą być coraz bardziej kosztowne wraz ze wzrostem wielkości zestawu danych.
źródło
Wygląda na to, że Twoje dane mogą potencjalnie rosnąć w nieskończoność (chyba że źle zrozumiałem twoją aplikację). W takim przypadku powiedziałbym, że najlepiej pozostawić trwałą pamięć masową silnikowi bazy danych w celu zwiększenia wydajności i wydajności.
źródło
Idź z podejściem baz danych. Jest to sprawdzona technologia do obsługi danych.
Jeśli chodzi o wydajność, możesz być w stanie przyspieszyć swój dostęp, mając indeksy, w przypadku których w XML nie ma takich środków.
W bazie danych możesz obliczyć dane statystyczne za pomocą funkcji agregujących, w XML musisz to zakodować.
Korzystając z bazy danych, możesz stosunkowo łatwo zmienić strukturę bazy danych (dodać kolumnę, tabelę itp.), A istnieją narzędzia, które pomogą Ci przenieść dane między bazami danych, gdzie tak jak w XML musisz to zrobić sam.
W bazie danych możesz egzekwować reguły integralności i możesz pozwolić użytkownikom pisać własne zaznaczenia, jeśli to konieczne, co nie jest łatwe w XML.
W bazie danych można bardzo łatwo sortować dane, a także zwiększać bezpieczeństwo. Korzystając z bazy danych, możesz zapomnieć o rozmiarze i współbieżności, więc w przyszłości Twoja aplikacja może się rozwijać bez zmian kodu.
Do powyższego użyj bazy danych! EK
źródło