Хранение файлов в каталогах в онлайн-файловом менеджере

StackOverflow https://stackoverflow.com/questions/3560449

Вопрос

У меня есть сайт, который позволяет людям загружать файлы на свой счет, и они отображаются в списке. Файлы для всех пользователей хранятся на разных серверах, и они перемещаются вокруг насколько они популярны (его сайт хостинга файлов).

Я хочу добавить возможность пользователей группировать файлы в папки. Я мог бы пойти на обычный маршрут и создавать физические папки на жестком диске, для каждого пользователя на сервере и поперечно поперезнете их. Недостатком к этому файлы пользователя будут связаны с одним сервером. Если этот сервер запускает пробел пространства (или многие файлы, получают популярность одновременно), он будет очень сложно смягчить его.

То, о чем я думал о том, чтобы сохранить природу файлов без гражданства, позволяя их хранить на любом из файловых серверов и просто сохраняя идентификатор папки (в дополнение к идентификатору пользователя, который принадлежит файл) с каждым файлом в базе данных. Поэтому, когда пользователь решает переместить файл, он не может быть физически перемещен в любом месте, вы просто измените идентификатор папки в базе данных.

Это хорошая идея? Я использую PHP и MySQL.

Это было полезно?

Решение

Да это так.

Я не вижу ни одного недостатка, кроме, возможно, больше запросов к базе данных, но с надлежащей индексацией идентификатора родительской папки, это, вероятно, будет быстрее, чем доступ к файловой системе напрямую.

Другие советы

Забудьте о папках и позвольте пользователям ярлык их файлы, несколько тегов на файл. Тогда дайте им просматривать Файлы с меткой X.. Отказ Это не сильно отличается от реализации, чем виртуальные папки, но гораздо более гибко для пользователей.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top