XML küçük projeler için SQL vs?


10

Yerel bir uygulama (WPF ve C # geliştirilen) beri bir kerede sadece bir kullanıcı olacak küçük bir proje üzerinde çalışıyorum. Veri depolamak için bir XML dosyası kullanmayı düşünüyordum ama bunun en iyi yaklaşım olup olmadığını merak ediyorum.

Veriler ne içindir:

  • shedules
  • Klasörlerdeki dosya kütüphanesi (Sanatçı adı, Başlık, HDD'de Konum)
  • Shedule verilerine dayanan olası istatistikler
  • ...

Kütüphaneyle ilgili bilgiler hayal ettiğim XML'de iyi olurdu ama geri kalan her şey hakkında o kadar emin değilim. Ayrıca LINQ to SQL, geliştirme hızı açısından LINQ to XML'den çok daha karlı görünüyor. Bu doğru mu yoksa yanılıyor muyum? Bunu SO ya da burada göndermek gerekir emin değildi ama burada daha uygun görünüyordu!

Şimdiden teşekkür ederim


2
"Bir seferde bir kullanıcı" kod konuşmasıdır "altı ay içinde tek gelir akışımız olacak ve aynı anda 4.000 kullanıcıyı desteklemesi gerekiyor". Buna göre planlayın :)
Bryan Boettcher

Hatta bir sql sunucu hizmeti çalıştırmak zorunda değilsiniz, sadece makineden makineye geçiş konusunda endişeleniyorsanız, dosyaya bağlı bir veritabanı yapabilirsiniz.
Peter Smith

2
ne seçerseniz seçin bir soyutlama katmanı yapın, böylece gerektiğinde başka bir şemaya kolayca geçebilirsiniz
cırcır ucube

Yanıtlar:


13

Çok sayıda IO yapacaksanız, SQL daha iyi bir seçimdir. SQL, verileri almak / depolamak için iyi çalışacak şekilde tasarlanmıştır, bu yüzden verileri XML yerine web sitesi gibi bir şeyde depolamak için kullanıyoruz.

XML, amacı gibi uygulamalar arasında paylaşılabilen ve yorumlanabilen insan tarafından okunabilir veriler için iyidir. XML ayrıştırma işlemi, veri kümesinin boyutu arttıkça maliyetli olabilecek çok sayıda dize düzenleme içerir.


3
Kompakt Sürümü unutmayın.
JeffO

2

Verileriniz potansiyel olarak sonsuza kadar büyüyebilir gibi geliyor (başvurunuzu yanlış anlamadım). Bu durumda, kalıcı depolama alanını verimlilik ve performans için bir veritabanı motoruna bırakmanın en iyisi olduğunu söyleyebilirim.


1

Veritabanı yaklaşımıyla devam edin. Verileri işlemek için kanıtlanmış bir teknolojidir.

Performans sorununda, XML'de böyle bir yöntem bulunmayan dizinler kullanarak erişiminizi hızlandırabilirsiniz.

Bir veritabanında, toplama işlevlerini kullanarak istatistiksel verileri hesaplayabilirsiniz, XML'de bunu kodlamanız gerekir.

Bir veritabanı kullanarak, veritabanı yapısını göreli kolaylıkla değiştirebilirsiniz (sütun, tablo vb. Ekle) ve verileri veritabanları arasında taşımanıza yardımcı olacak araçlar vardır, burada XML'de olduğu gibi bunu kendiniz yapmanız gerekir.

Bir veritabanında, bütünlük kurallarını uygulayabilir ve kullanıcıların XML'de oldukça kolay değil, gerekirse kendi seçimlerini yazmalarına izin verebilirsiniz.

Veritabanında, verileri çok kolay bir şekilde sıralayabilir, ayrıca güvenlik ekleyebilirsiniz. Bir veritabanı kullanarak, boyut ve eşzamanlılığı unutabilirsiniz, böylece gelecekte uygulamanız kod değişiklikleri olmadan büyüyebilir.

Yukarıdakiler için bir veritabanı kullanın! EK

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.