Я думаю что yaml или json подходят для хранения телефонного справочника гораздо лучше чем csv.
- Не будет проблем с удалением пробелов или табуляций и т.п.(предлагаемые форматы более строгие и у пользователя гораздо меньше возможности испортить данные).
- При большом количестве полей меньше возможности запутаться поскольку можно использовать запись типа ключ - значение.
- Вы получаете “NoSQL” решение при котором не ограничены в сложности записей с одной стороны. С другой стороны не требуется перелопачивать все записи при изменении структуры отдельных записей.
Поэтому поддержание такого справочника в порядке гораздо проще чем обычной таблицы.
Из минусов - повышенная многословонсть.
Я сам давным давно контакты, списки задач, списки публикаций и т.п. храню в yaml файлах добавленных в систему контроля версий (возможный вариант хранение в облаке но я предпочитаю более детальный контроль и возможность просмотра изменений). Дописываю утилиты для работы с ним по мере необходимости.
Пример для телефонного справочника.
---
name : Иванов Иван Иванович
dr : 1988-05-25
tel : 849532222300
email : sh0.romash@mail.ru
addr : 165
info : Познакомились на пъянке у деда мороза
---
name : Щукин Налим Рыбняевич
tel : 89104500000р 89104500001д
email : abcdef@mephi.ru
dr : 2014-10-11 09:57:01.890000
кличка : Рыбак