Я ищу, чтобы создать базовый компонент управления файлами для системы, над которой я работаю (php, javascript, sencha). Я пытаюсь убедить себя так или иначе в том, нужно ли мне хранить дополнительную информацию в базе данных о файлах, управляемых через систему. С одной стороны, я не хочу усложнять простой дизайн, пытаясь обеспечить отражение информации, хранящейся в базе данных, в файловой системе. Я предполагаю, что наступает кошмар, если по какой-то причине они перестают синхронизироваться. То есть путь не обновляется правильно. Просто кажется, что проще полагаться на то, что в файловой системе. Мне не нужны никакие механизмы управления, такие как ACL.Должен ли я хранить информацию о файлах в базе данных для файлового менеджера на основе php?
По большей части структуры каталогов скрыты от пользователя, так как им действительно все равно, где в файловой системе они хранятся. Kinda, как вложения электронной почты. Вложения связаны с другими данными в базе данных. Моя первоначальная идея заключалась в создании отношений внутри файловой системы с использованием каталогов. Например:
Коренной
... Project_id_1
...... Theme_id_1
......... Topic_id_1
......... Topic_id_2
. ........ Topic_id_3
...... Theme_id_2
...... Theme_id_3
... Project_id_2
... Project_id_3
Идентификатор будет запись IDэлемента в базе данных тоже связано. Я думаю, что это будет работать нормально, за исключением случаев, когда мне нужно отобразить это как древовидное представление. Мне нужно будет извлечь отношения для каждого каталога, чтобы я мог отображать значимые имена. Возможно, это прекрасный компромис для простоты, полученной в других местах. То есть не переименовывать каталоги при каждом изменении имени темы.
Если бы я решил хранить дополнительную информацию в БД о каждом файле, что бы я выиграл, кроме полезной (но не необходимой) информации, например, кто загрузил ее, дату и т. Д. И т. Д. Конечно, любые другие причины Я должен рассмотреть другие проекты, которые будут оценены. Большая часть материалов OTS либо предлагает слишком много функций, мне не нужно, либо слишком много работы, чтобы модифицировать систему.
Этот вопрос может иметь смысл спросить на новом сайте SE dba - http://dba.stackexchange.com/. Чтобы быть немного более полезным, чем просто это (и позволяя, чтобы я не проделал столько проектов, подобных этому), похоже, что у вас есть неплохая идея о масштабах вашего проекта и вам не нужно больше, чем у вас уже есть. Мне кажется, что сохранение такой информации в БД является избыточным - не будет ли у ОС таких вещей, как «дата создания», «владелец файла» (если только PHP не работает как один пользователь, если к нему обращаются многие разные учетные записи, вы можете рассмотреть chroot тюрьму) и т. д., уже прикрепленные как метаданные файлов? – aendrew
без базы данных ваш файловый менеджер не будет более полезен, чем клиент ftp. db позволит вам делать такие вещи, как быстрый поиск по более конкретным критериям. например, если вы хотите просмотреть все файлы, загруженные пользователем x между датами x и x, как бы вы это сделали без db? но тогда вы, возможно, никогда не захотите таких функций. – dqhendricks