2010-08-24 8 views
1

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

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

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

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

ответ

2

Да, это так.

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

0

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