Я работаю над веб-сайтом, который позволяет пользователям загружать файлы (изображения и т. Д.). У меня нет предыдущего опыта в этой области, и я надеялся получить информацию о том, как правильно хранить и индексировать эти файлы.
Хотя я хотел бы иметь архитектуру, которая хорошо масштабируется для данных большого объема, в настоящее время я не беспокоюсь о чрезвычайно больших объемах (в масштабе facebook, google).
Я думал о том, чтобы сохранить файлы в файловой системе в
/files/{username}/
, а затем иметь базу данных загрузок
, где у каждого пользователя есть своя собственная таблица с именами файлов (и, следовательно, URL-адресами) каждого загруженного им файла. (и любую другую дополнительную информацию, которую я могу сохранить).
Конец этой базы данных (предоставление каждому пользователю его собственной таблицы) кажется мне очень неэффективным, но сохранение записей всех файлов в одной таблице не кажется правильным, так как для этого потребовался бы поиск по всей таблице каждый время доступа к одному файлу.
Мое довод в пользу того, чтобы предоставить каждому пользователю его собственную таблицу, заключалось в том, что это аккуратный и отличный способ сегментировать данные по таблицам и сократить время поиска при поиске файла, заданного пользователем.