XML vs. SQL dla małych projektów?


10

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ę


2
„Jeden użytkownik na raz” to słowo, które mówi „za sześć miesięcy będzie to nasz jedyny strumień przychodów i będzie musiał obsługiwać 4000 jednoczesnych użytkowników”. Zaplanuj odpowiednio :)
Bryan Boettcher

Nie musisz nawet uruchamiać usługi serwera SQL, możesz po prostu zrobić z niej bazę danych dołączoną do pliku, jeśli martwisz się migracją z komputera na komputer.
Peter Smith,

2
bez względu na to, co wybierzesz, utwórz warstwę abstrakcji, aby łatwo przejść do innego schematu, gdy będzie to konieczne
maniak zapadkowy

Odpowiedzi:


13

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.


3
Nie zapomnij o wersji Compact Edition.
JeffO,

2

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.


1

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.