Bunları aşağıdaki gibi kullanıyorum:
Düz Metin
Bu kategori YAML veya özellikler dosyaları gibi biraz daha ayrıntılı formatlar içeriyorsa, insanların elle okumasını ve düzenlemesini beklediğiniz her şey için en iyi seçenektir. Bir başka büyük avantaj, küçük bir komut dosyası (örn. Sed) aracılığıyla değiştirmenin basitliğidir.
Hiçbir şey basitliği ve kullanım kolaylığını aşamaz. Destek ekibinin uzak makinede bir şey yapılandırması gerektiğinde (örneğin, bir müşterinin sorununu çözdüğünde) veya BT'nin yazılımınızı çalıştıran bir grup sunucuyu yeniden yapılandırması gerektiğinde, bu biçimi seçtiğiniz için teşekkür ederler. Ayrıca, bunu onlar için yapan bir kerelik bir yazılım yazmaktan kurtaracaktır.
XML
Burada @Ingo ile hemfikirim - düz metin XML'in aksine komut dosyası ile işlenmesi daha zor ve el imo ile düzenlemek için bir kabus.
Yine de, YAML'nin çözülemez hale geldiği ve yine de insan tarafından okunabilir ve düzenlenebilir olmasını istediği ayrıntılı bir yapıya sahip verileriniz varsa, XML muhtemelen en iyi seçimdir.
İlişkisel veritabanı
Üçüncü tarafların SQL komutları ve hatta GUI'ler aracılığıyla manuel olarak düzenlemelerine izin vermek isteyebileceğiniz çok sayıda veri (düz metin ve XML hantal hale getirecek) olduğunda mükemmel bir seçim.
Diğer bir avantajı, içeriği yöneten kodunuzun çok okunabilir olmasıdır. @ Richard-Harrison mükemmel cevabında diğer avantajların iyi bir listesini verdi.
NoSQL Veritabanı
RDBMS'ye göre bir avantaj, muhtemelen sorunuzla çok ilgili olmayan dağıtım yoluyla ölçeklenebilirliktir. Muhtemelen daha alakalı olan avantajlar, bir anahtar-değer deposunun basitliği ve şematikliğin esnekliğidir (bu bir kelime midir?). Kendinizi ilişkisel paradigmayı kırdığınızda bulduğunuzda: blobları veritabanına depolamak, anahtarla erişmek ve kod aracılığıyla işlemek, sonra bu seçeneği göz önünde bulundurun. Bazı seçenekler (örn. CouchDB) çok portatiftir, az yer kaplar ve ölçeklenebilir, böylece MySQL ve SQLite için iyi ilişkisel olmayan bir alternatif sunarlar.
İkili
İkili programın avantajı hızlı ve kompakt olmasıdır. Dosyanızı okumak ve değiştirmek için gereken tek şey bir program olduğunda ve veriler ilişkisel paradigmaya veya hıza uymadığında gerçekten önemliyse, bu iyi bir seçim olabilir. Muhtemelen medya dosyaları için en uygun.
Yine de, ilk tasarım sırasında dikkate alınmayan nedenlerle bir noktada program verilerine basit erişimin gerekli olmadığı bir durumla karşılaşmadığımı belirtmeliyim. Günümüzde kişisel olarak standart formatları olan ve başka bir yazılım (örneğin ses, video) tarafından kodlanması / kodunun çözülmesi gereken dosyalardan başka bir şey için veritabanı seçeneğini tercih ediyorum.
Not: İkili sayının opak ve dolayısıyla bir şekilde daha güvenli olduğu konusunda yaygın bir yanlış anlama vardır. Ek koruma olmadan - birisi yazılımınızı hacklemek istiyorsa, konfigürasyonlarınızı veya ikili dosyadaki herhangi bir şeyi depolamak onları durdurmaz.
Sıkıştırılmış Arşiv
Yukarıdakilere gerçekten bir alternatif değil, ekstra bir önlem.
Bir şeyleri ağ üzerinden iletmeniz gerektiğinde veya çok fazla veri depoladığınızda ve yerden tasarruf etmek istediğinizde avantajlıdır. Depolama alanının bu günlerde genellikle bol olduğunu unutmayın, bu nedenle hedef platformunuzu düşünün.
Bugün hemen hemen her şeyde çok hızlı bir performans sergiliyor (Moore yasası, bebek), bu yüzden kullanmamanın tek nedeni kodunuza karmaşıklık katmasıdır. Çok fazla karmaşıklık değil, yine de KISS ilkesinin ihlali. Özellikle el ile veya komut dosyasıyla düzenlenmesi gereken yapılandırma dosyaları için hantal ve gerçekten de alandan tasarruf etmeniz gerekiyorsa, muhtemelen veritabanı seçeneğini kullanmalısınız.