Вся структура папок строится на основе id пользователя.
т.е. берем id пользователя и вычисляем по его id адрес папки.
Таким образом получилась примерно вот такая вот структура ветвления
В одной папке может храниться не более 100 папок.
Получается примерно такой адрес папки пользователя:
1/1/1/1/1/
Дальше высчитываем md5 из id файла и создаем в папке пользователя структуру по md5
Допустим md5 id файла b4k7nbsdgjh45b45mbjdfbgser, тогда структура будет такой
b4k/7nb/sdg/jh45b45mbjdfbgser
И конечный адрес до файла получаем
1/1/1/1/1/b4k/7nb/sdg/jh45b45mbjdfbgser
Я посмотрел что на хабре файлы хранятся таким же образом
https://habrastorage.org/files/e4a/69d/525/e4a69d5...
Но у них нет пользователей, хотя может они прописывают в базе какому пользователю принадлежит файл, но это не столь важно.
Мой портал подразумевает огромное количество файлов, что со временем будет требовать распределение файлов по серверам.
Так же я знаю что на сервере есть ограничение на количество файлов и папок.
Правильно ли я построил структуру хранения?