Saya menggunakannya sebagai berikut:
Teks Biasa
Jika kategori itu mencakup format yang sedikit lebih rumit, seperti YAML atau file properti, maka itu adalah pilihan terbaik untuk apa pun yang Anda harapkan orang baca dan edit dengan tangan. Keuntungan besar lainnya adalah kesederhanaan memodifikasinya melalui skrip kecil (mis. Sed).
Tidak ada yang mengalahkan kesederhanaan dan kemudahan penggunaan. Ketika tim dukungan harus mengonfigurasi sesuatu pada mesin jarak jauh (mis. Menyelesaikan masalah klien), atau IT harus mengkonfigurasi ulang sekelompok server yang menjalankan perangkat lunak Anda, mereka akan berterima kasih telah memilih format ini. Ini juga akan menyelamatkan Anda dari menulis beberapa perangkat lunak satu kali yang melakukan itu untuk mereka.
XML
Saya setuju dengan @Ingo di sini - tidak seperti teks biasa, XML lebih sulit diproses melalui skrip, dan mimpi buruk untuk diedit dengan imo tangan.
Namun, jika Anda memiliki data dengan beberapa struktur rumit di mana YAML menjadi tidak dapat dipahami dan masih ingin agar dapat dibaca dan diedit oleh manusia, maka XML mungkin merupakan pilihan terbaik.
Database relasional
Pilihan tepat ketika Anda memiliki banyak data (yang akan membuat teks biasa dan XML tidak praktis) yang mungkin Anda masih ingin mengizinkan pihak ketiga mengedit secara manual - melalui perintah SQL dan bahkan GUI.
Keuntungan lain adalah bahwa kode Anda yang mengelola konten sangat mudah dibaca. @ Richard-Harrison memberikan daftar keunggulan lainnya dalam jawabannya.
Database NoSQL
Satu kelebihan dibandingkan RDBMS adalah skalabilitas melalui distribusi, yang mungkin tidak terlalu relevan dengan pertanyaan Anda. Keuntungan yang mungkin lebih relevan adalah kesederhanaan toko kunci-nilai dan fleksibilitas schemalessness (apakah ini kata?). Ketika Anda menemukan diri Anda melanggar paradigma relasional: hanya menyimpan gumpalan ke database, mengaksesnya dengan kunci, dan memprosesnya melalui kode, kemudian pertimbangkan opsi ini. Beberapa pilihan (misalnya CouchDB) sangat portabel, memiliki tapak kecil dan juga skala sehingga mereka menawarkan alternatif non-relasional yang baik untuk MySQL dan SQLite.
Biner
Keuntungan dari biner adalah ia cepat dan ringkas. Ketika satu-satunya hal yang perlu dibaca dan diubah file Anda adalah sebuah program dan data tidak sesuai dengan paradigma atau kecepatan relasional sangat penting maka ini mungkin merupakan pilihan yang baik. Mungkin yang paling cocok untuk file media.
Saya harus menunjukkan bahwa saya belum menemukan kasus di mana akses sederhana ke data program tidak diperlukan di beberapa titik karena alasan yang tidak dipertimbangkan selama desain awal. Saat ini saya secara pribadi mencari opsi database untuk hal lain selain file yang memiliki format standar dan perlu dikodekan / didekodekan oleh perangkat lunak lain (misalnya audio, video).
Catatan: ada kesalahpahaman umum bahwa biner buram dan karenanya lebih aman. Tanpa perlindungan tambahan, itu bukan - jika seseorang ingin meretas perangkat lunak Anda maka cukup menyimpan konfigurasi Anda atau apa pun dalam biner tidak akan menghentikannya.
Arsip Terkompresi
Bukan benar-benar alternatif di atas, tetapi lebih merupakan tindakan ekstra.
Menguntungkan ketika Anda perlu mengirimkan hal-hal melalui jaringan, atau ketika Anda menyimpan banyak dan banyak data dan ingin menghemat ruang. Perhatikan bahwa ruang penyimpanan biasanya berlimpah hari ini, jadi pertimbangkan platform target Anda.
Berkinerja sangat cepat pada hampir semua hal hari ini (hukum Moore sedang beraksi, sayang), jadi satu-satunya alasan untuk tidak menggunakannya adalah karena menambah kompleksitas pada kode Anda. Tidak banyak kerumitan, tetapi masih merupakan pelanggaran prinsip KISS. Terutama rumit untuk file konfigurasi yang perlu diedit secara manual atau melalui skrip - dan jika Anda benar-benar perlu menghemat ruang di sana, maka Anda mungkin harus menggunakan opsi database.