Я бы использовал плоскую файловую систему, называя файлы с помощью некоторой (сгенерированной?) Метки и комбинации идентификаторов записей. Нет необходимости в папках. Если вы хотите реализовать управление версиями, вы можете поставить отметку даты и времени. Я видел пару систем, построенных таким образом, которые отлично работают.
Если вы решите использовать систему файловых папок, будьте очень прагматичны в реализации именования и размещения папок. Вы также можете объединить два варианта.
Лично я бы отделил ваш процесс / реализацию хранилища от ваших приложений / процессов доступа и не позволил бы одному решению влиять на другое. Используйте логику приложения для доступа к файлам. Храните их максимально эффективно.
Например, вы можете хранить свои файлы централизованно, как хотите, а затем использовать семантический слой, чтобы найти ваши файлы несколькими способами (имя, тема, тип и т. Д.). Подумайте, как работает система вики.