XML vs SQL untuk proyek kecil?

10

Saya sedang mengerjakan proyek kecil yang hanya akan memiliki satu pengguna pada satu waktu karena ini adalah aplikasi lokal (dikembangkan dalam WPF dan C #). Untuk menyimpan data saya berpikir untuk menggunakan file XML tapi saya bertanya-tanya apakah ini akan menjadi pendekatan terbaik.

Untuk data apa:

  • Shedules
  • Perpustakaan file dalam folder (dengan nama Artis, Judul, Lokasi pada HDD)
  • Mungkin statistik berdasarkan data shedule
  • ...

Informasi mengenai pustaka akan baik-baik saja dalam XML saya bayangkan tetapi tentang sisanya saya tidak begitu yakin. LINQ to SQL juga tampaknya jauh lebih menguntungkan dalam hal kecepatan pengembangan daripada LINQ ke XML. Apakah ini benar atau saya salah? Saya tidak yakin apakah saya harus memposting ini di SO atau di sini tetapi tampaknya lebih tepat di sini!

Terima kasih sebelumnya

Citroenfris
sumber
2
"Satu pengguna pada satu waktu" adalah kode untuk "dalam enam bulan ini akan menjadi satu-satunya aliran pendapatan kami dan perlu mendukung 4.000 pengguna secara bersamaan". Rencanakan sesuai :)
Bryan Boettcher
Anda bahkan tidak harus menjalankan layanan server sql, Anda bisa menjadikannya file basis data terlampir jika Anda khawatir tentang migrasi dari mesin ke mesin.
Peter Smith
2
tidak peduli apa yang Anda pilih, buat lapisan abstraksi sehingga Anda dapat dengan mudah bertukar ke skema lain bila diperlukan
ratchet freak

Jawaban:

13

Jika Anda akan melakukan banyak IO, SQL adalah pilihan yang lebih baik. SQL dirancang untuk bekerja dengan baik untuk mendapatkan / menyimpan data yang mengapa kami menggunakannya untuk menyimpan data pada sesuatu seperti situs web sebagai lawan dari XML.

XML baik untuk data yang dapat dibaca manusia yang dapat dibagikan dan ditafsirkan di antara aplikasi, seperti niatnya. Penguraian XML melibatkan BANYAK manipulasi string yang dapat menjadi mahal saat ukuran kumpulan data meningkat.


sumber
3
Jangan lupa Edisi Compact.
JeffO
2

Kedengarannya seolah-olah data Anda berpotensi tumbuh tanpa batas (kecuali saya salah memahami aplikasi Anda). Dalam hal ini, saya akan mengatakan yang terbaik untuk meninggalkan penyimpanan yang persisten ke mesin database untuk efisiensi dan kinerja.


sumber
1

Pergilah dengan pendekatan basis data. Ini adalah teknologi terbukti untuk menangani data.

Pada masalah kinerja, Anda mungkin dapat mempercepat akses Anda dengan memiliki indeks, di mana dalam XML, tidak ada cara seperti itu.

Pada basis data, Anda bisa menghitung data statistik menggunakan fungsi agregat, dalam XML Anda harus kode itu.

Menggunakan basis data, Anda dapat mengubah struktur basis data dengan relatif mudah (tambahkan kolom, tabel, dll.) Dan ada alat untuk membantu Anda memindahkan data di antara basis data, sedangkan dalam XML Anda harus melakukannya sendiri.

Dalam database, Anda dapat menerapkan aturan integritas dan Anda dapat membiarkan pengguna menulis sendiri pilihan jika diperlukan, tidak cukup mudah dalam XML.

Dalam database, Anda dapat mengurutkan data dengan sangat mudah, juga Anda dapat menambahkan keamanan. Menggunakan database, Anda bisa melupakan ukuran dan konkurensi, sehingga di masa depan, aplikasi Anda dapat tumbuh tanpa perubahan kode.

Untuk yang di atas, gunakan database! EK

Tidak ada kesempatan
sumber