Хранение файлов в каталогах в онлайн файловом менеджере - PullRequest
1 голос
/ 24 августа 2010

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

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

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

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

Ответы [ 2 ]

2 голосов
/ 24 августа 2010

Да, это так.

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

0 голосов
/ 25 августа 2010

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

...