|
|
|
| У меня в будущей соц.сети у каждого юзера будет место под файлы... никак не могу придумать,как хранить файлы, по папкам для каждого юзера, по данным в БД, или друг советует прям в БД хранить...
Файлы будут до 1-3мб но их оч много | |
|
|
|
|
|
|
|
для: Елена Смирнова
(19.12.2007 в 18:37)
| | Файлы храните в папках. Именуйте их именами или id юзеров (что лучше) из БД, а в БД храните имена фйлов, привязанные к пользователю. | |
|
|
|
|
|
|
|
для: Елена Смирнова
(19.12.2007 в 18:37)
| | Ну если у вас сервер мошный, то можно конечно хранить файлы в БД, но нагрузка на БД будет высокой. А лучше использовать метод как предложил mihdan, я думаю это самое оптимальное решение для вашей проблемы.
Если я в чем-то неправ, то поправьте. | |
|
|
|
|
|
|
|
для: Staglu
(19.12.2007 в 19:33)
| | Если Ваши пользователи будут "порождать" файлы в Word, Exel, Visio, то им можно позволить организовать сакционированный доступ через FTP-ресурс к соответствующим каталогам на сервере (настройки в данных редакторах). Это облегчит им и жизнь. Да и вам не так уж много потребуется написать, чтобы организовать страницы сайта, для просмотра этих файлов в браузере. Квоты, сроки хранения решите штатными средствами сервера. | |
|
|
|
|
|
|
|
для: vitali
(20.12.2007 в 17:06)
| | Спасибо, действительно лучше файлы хранить в одной папке и давать им уникальное имя, а в бд писать инфу о том, к кому принадлежит тот или иной файл | |
|
|
|
|
|
|
|
для: Елена Смирнова
(21.12.2007 в 14:10)
| | Немного сентенций, уж извините. Стрелять из пушки по воробьям (тянуть базу данных + устанавливать соответствие межу файлом и записью в БД, немного хлопотно; файлы наверно придется удалять, модифицировать), нужно ли? Чистку папок(каталогов) можно решить штатными средствами сервера (установив квоту на срок их хранения) или запускать по crontab «чистильщик мусора».
Как Вы планируете поступление файлов на сервер, по HTTP- или FTP-протоколу?
- При HTTP файлы будут поступать от nobody, но вы можете получить необходимую
информацию о пользователе для его идентифицирования, а значит можно формировать конфигурационный фал (например, dirinfo.ini) и поигравшись немного в разборщики выдавать информацию об авторе.
- При FTP (используя FTP-сервер) каталоги сделаете персонализированными.
Такая схема работает быстрее чем использование БД. (мое мнение). | |
|
|
|
|
|
|
|
для: vitali
(21.12.2007 в 14:55)
| | >Такая схема работает быстрее чем использование БД. (мое мнение).
Только в теории. Когда говорят о том, что напрямую с файлами работать быстрее, как правило, забывают о том, что пользователю нужно выдавать информацию в удобоваримом виде (сортировка, фильтрация, поиск и пр). В случае работы с файлами, все это придется реализовывать средствами php, а в случае с БД - эту работу на себя возьмет сервер БД. | |
|
|
|
|
|
|
|
для: Loki
(21.12.2007 в 15:46)
| | > пользователю нужно выдавать информацию в удобоваримом виде (сортировка, фильтрация, поиск и пр). В случае работы с файлами, все это придется реализовывать средствами php, а в случае с БД - эту работу на себя возьмет сервер БД.
В принципе каждый решает для себя сам, но (на мой взгляд) сортировка и фильтрация имен файлов и дат их создания, что средствами SQL, что ф-циями PHP или сервера (system(....))
не так уж сильно отличаются по трудоемкости. А как вы решите проблему "контекстного поиска строки из файла" средствами SQL? Здесь вам и понадобятся "волшебные" команды класса grep. (шутка, это проходит только для файлов типа text/plain, для doc-, xls-файлов я решения не знаю). Да и в SQL работа с Blob весьма ограничена. | |
|
|
|