Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Прошу совета по хранению файлов
 
 автор: Елена Смирнова   (19.12.2007 в 18:37)   письмо автору
 
 

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

   
 
 автор: mihdan   (19.12.2007 в 18:56)   письмо автору
 
   для: Елена Смирнова   (19.12.2007 в 18:37)
 

Файлы храните в папках. Именуйте их именами или id юзеров (что лучше) из БД, а в БД храните имена фйлов, привязанные к пользователю.

   
 
 автор: Staglu   (19.12.2007 в 19:33)   письмо автору
 
   для: Елена Смирнова   (19.12.2007 в 18:37)
 

Ну если у вас сервер мошный, то можно конечно хранить файлы в БД, но нагрузка на БД будет высокой. А лучше использовать метод как предложил mihdan, я думаю это самое оптимальное решение для вашей проблемы.
Если я в чем-то неправ, то поправьте.

   
 
 автор: vitali   (20.12.2007 в 17:06)   письмо автору
 
   для: Staglu   (19.12.2007 в 19:33)
 

Если Ваши пользователи будут "порождать" файлы в Word, Exel, Visio, то им можно позволить организовать сакционированный доступ через FTP-ресурс к соответствующим каталогам на сервере (настройки в данных редакторах). Это облегчит им и жизнь. Да и вам не так уж много потребуется написать, чтобы организовать страницы сайта, для просмотра этих файлов в браузере. Квоты, сроки хранения решите штатными средствами сервера.

   
 
 автор: Елена Смирнова   (21.12.2007 в 14:10)   письмо автору
 
   для: vitali   (20.12.2007 в 17:06)
 

Спасибо, действительно лучше файлы хранить в одной папке и давать им уникальное имя, а в бд писать инфу о том, к кому принадлежит тот или иной файл

   
 
 автор: vitali   (21.12.2007 в 14:55)   письмо автору
 
   для: Елена Смирнова   (21.12.2007 в 14:10)
 

Немного сентенций, уж извините. Стрелять из пушки по воробьям (тянуть базу данных + устанавливать соответствие межу файлом и записью в БД, немного хлопотно; файлы наверно придется удалять, модифицировать), нужно ли? Чистку папок(каталогов) можно решить штатными средствами сервера (установив квоту на срок их хранения) или запускать по crontab «чистильщик мусора».
Как Вы планируете поступление файлов на сервер, по HTTP- или FTP-протоколу?
- При HTTP файлы будут поступать от nobody, но вы можете получить необходимую
информацию о пользователе для его идентифицирования, а значит можно формировать конфигурационный фал (например, dirinfo.ini) и поигравшись немного в разборщики выдавать информацию об авторе.
- При FTP (используя FTP-сервер) каталоги сделаете персонализированными.
Такая схема работает быстрее чем использование БД. (мое мнение).

   
 
 автор: Loki   (21.12.2007 в 15:46)   письмо автору
 
   для: vitali   (21.12.2007 в 14:55)
 

>Такая схема работает быстрее чем использование БД. (мое мнение).
Только в теории. Когда говорят о том, что напрямую с файлами работать быстрее, как правило, забывают о том, что пользователю нужно выдавать информацию в удобоваримом виде (сортировка, фильтрация, поиск и пр). В случае работы с файлами, все это придется реализовывать средствами php, а в случае с БД - эту работу на себя возьмет сервер БД.

   
 
 автор: vitali   (21.12.2007 в 16:55)   письмо автору
 
   для: Loki   (21.12.2007 в 15:46)
 

> пользователю нужно выдавать информацию в удобоваримом виде (сортировка, фильтрация, поиск и пр). В случае работы с файлами, все это придется реализовывать средствами php, а в случае с БД - эту работу на себя возьмет сервер БД.

В принципе каждый решает для себя сам, но (на мой взгляд) сортировка и фильтрация имен файлов и дат их создания, что средствами SQL, что ф-циями PHP или сервера (system(....))
не так уж сильно отличаются по трудоемкости. А как вы решите проблему "контекстного поиска строки из файла" средствами SQL? Здесь вам и понадобятся "волшебные" команды класса grep. (шутка, это проходит только для файлов типа text/plain, для doc-, xls-файлов я решения не знаю). Да и в SQL работа с Blob весьма ограничена.

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования