воскресенье, 15 января 2017 г.

8. История о том, как написать систему управления проектами (ERP) своими руками. О файлах и хранении.

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

Но это только часть, видимая пользователю. Самое интересное, для нас - как хранить и загружать. Сказать честно - я никогда не делал сайтов, на которых бы постоянно загружали/ выгружали тонны файлов, однако, с помощью того, что я напилю файлы до 100 метров должны загружаться без проблем и не с 1 компа одновременно. Ранее я уже писал о загрузке файлов: суть в том, что открываем отдельное окно, далее в него суем нужные файлы и загружаем. удобно с той точки зрения, что одновременно вполне себе можно работать, но самое главное - можно отправить функцию загрузки на сабдомен, тем самым разгрузив основной сервер и пользователь не увидит большой разницы! это удобно и этим можно очень даже пользоваться.
Но, это только первая часть того самого балета. Дальше - а как хранить файлы? с одной стороны, можно использовать файловую систему для хранения, с другой - хранить в базе (возможно, даже отдельной). Тут все зависит от целей. Я, например, храню в файловой системе создавая иерархию директорий: id_проекта/id_группы/id_файла. Ид-шники проекта и группы узнаем из базы. Далее при удачной загрузки файла пишем запись в базу данных, что был загружен файл с таким-то названием, тем-то, во столько-то, достаем id этой записи из базы и присваиваем в качестве имени для файла. Единственный минус, с которым я столкнулся - иногда приходится лезть в базу, чтобы определить, чем открыть тот или иной файл, когда приходится доставать его не через систему (и такое бывает). Причем, зачастую, файлы могут лежать, например, на NAS'e или отдельном сервере, что очень удобно для хранения. И цепляться через сеть можно с любого сервера, где стоит сабдомен. Единственное, удобно это тогда, когда это интрасеть, в противном случае, iscsi и танцы с бубном могут пригодится :)



Комментариев нет:

Отправить комментарий