Я сделал оба. Мне нравятся файлы для очень простых задач и базы данных для сложных задач.
Для файловых решений обратите внимание на следующие проблемы по мере увеличения количества файлов:
1) Используется гораздо больше дискового пространства, чем вы могли бы ожидать, потому что даже крошечные файлы занимают целый блок. Блоки довольно большие в файловых системах, которые поддерживают большие диски.
2) Большинство файловых систем работают очень медленно, когда количество файлов в каталоге становится очень большим. Мое решение этого (при условии, что имена файлов разумно распределены по алфавиту) состоит в создании каталога, состоящего из первых двух букв имени файла. Таким образом, файл "animal.txt" будет найден в / animal.txt. Это работает на удивление хорошо. Если ваши имена файлов не очень хорошо распределены по алфавиту, используйте какую-то функцию хеширования для создания каталогов. Звучит немного безумно, но это может работать очень и очень хорошо, и я использовал его для очень быстрых решений с десятками тысяч файлов.
Но файловые решения действительно подходят только иногда. Если у вас нет веских причин использовать файлы, используйте базу данных.