Używam ich w następujący sposób:
Zwykły tekst
Jeśli ta kategoria zawiera nieco bardziej rozbudowane formaty, takie jak YAML lub pliki właściwości, to jest to najlepsza opcja dla tego, czego oczekujesz, że ludzie będą czytać i edytować ręcznie. Kolejną ogromną zaletą jest prostota modyfikacji za pomocą małego skryptu (np. Sed).
Nic nie przebije prostoty i łatwości użytkowania. Gdy zespół pomocy technicznej musi coś skonfigurować na zdalnym komputerze (np. Rozwiązać problem klienta) lub dział IT musi ponownie skonfigurować kilka serwerów, na których działa twoje oprogramowanie, podziękują Ci za wybranie tego formatu. Pozwoli ci to również zaoszczędzić na pisaniu oprogramowania, które im to odpowiada.
XML
Zgadzam się z @Ingo tutaj - w przeciwieństwie do zwykłego tekstu XML jest trudniejszy do przetworzenia za pomocą skryptów, a koszmar do edycji ręcznie imo.
Mimo to, jeśli masz dane o skomplikowanej strukturze, w których YAML staje się nieczytelny i nadal chcesz, aby były czytelne dla człowieka i edytowalne, to XML jest prawdopodobnie najlepszym wyborem.
Relacyjna baza danych
Świetny wybór, gdy masz dużo danych (co spowodowałoby, że zwykły tekst i XML byłyby uciążliwe), które nadal możesz chcieć umożliwić stronom trzecim do ręcznej edycji - za pomocą poleceń SQL, a nawet GUI.
Kolejną zaletą jest to, że kod zarządzający zawartością jest bardzo czytelny. @ Richard-Harrison podał dobrą listę innych zalet w swojej doskonałej odpowiedzi.
Baza danych NoSQL
Zaletą w stosunku do RDBMS jest skalowalność poprzez dystrybucję, co prawdopodobnie nie jest zbyt istotne w przypadku twojego pytania. Korzyści, które są prawdopodobnie bardziej odpowiednie, to prostota magazynu klucz-wartość i elastyczność schematyzmu (czy to słowo?). Kiedy odkryjesz, że łamiesz paradygmat relacji: po prostu przechowuj obiekty BLOB w bazie danych, uzyskuj do nich dostęp za pomocą klucza i przetwarzaj je za pomocą kodu, a następnie rozważ tę opcję. Niektóre opcje (np. CouchDB) są bardzo przenośne, mają niewielkie rozmiary i mogą być skalowane, dzięki czemu stanowią dobrą nierelacyjną alternatywę dla MySQL i SQLite.
Dwójkowy
Zaletą binarnych jest to, że jest szybki i kompaktowy. Jeśli jedyną rzeczą, która musi odczytać i zmodyfikować plik, jest program, a dane nie pasują do paradygmatu relacji lub szybkość jest naprawdę ważna, może to być dobry wybór. Prawdopodobnie najlepiej pasuje do plików multimedialnych.
Powinienem jednak zaznaczyć, że jeszcze nie spotkałem się z przypadkiem, w którym prosty dostęp do danych programu nie jest w pewnym momencie wymagany z powodów, które nie były brane pod uwagę podczas wstępnego projektowania. Obecnie osobiście wybieram opcję bazy danych dla wszystkiego innego niż pliki, które mają standardowe formaty i muszą być kodowane / dekodowane przez inne oprogramowanie (np. Audio, wideo).
Uwaga: powszechne jest błędne przekonanie, że plik binarny jest nieprzejrzysty, a przez to bardziej bezpieczny. Bez dodatkowej ochrony tak nie jest - jeśli ktoś chce zhakować twoje oprogramowanie, po prostu przechowywanie konfiguracji lub cokolwiek w pliku binarnym ich nie zatrzyma.
Skompresowane archiwum
Nie jest to właściwie alternatywa dla powyższego, ale raczej dodatkowy środek.
Jest to przydatne, gdy potrzebujesz przesyłać rzeczy przez sieć lub gdy przechowujesz dużo danych i chcesz zaoszczędzić miejsce. Pamiętaj, że w dzisiejszych czasach przestrzeń dyskowa jest zwykle duża, więc zastanów się nad platformą docelową.
Działa bardzo szybko na prawie wszystkim dzisiaj (prawo Moore'a w działaniu, kochanie), więc jedynym powodem, dla którego nie należy go używać, jest to, że zwiększa złożoność kodu. Niewielka złożoność, ale nadal naruszenie zasady KISS. Szczególnie kłopotliwe w przypadku plików konfiguracyjnych, które należy edytować ręcznie lub za pomocą skryptów - a jeśli naprawdę potrzebujesz tam zaoszczędzić miejsce, prawdopodobnie powinieneś użyć opcji bazy danych.