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

Форум PHP

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

 

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

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

тема: Хранение фотографий (доска объявлений)
 
 автор: tricket   (04.08.2007 в 18:45)   письмо автору
 
 

пишу сайт. возникли затруднения, которые сам решить не могу. прошу помощи вашей!
1)там есть доска объявлений. к объявленияс фотки. как лучше их организовать? хочу сделать для каждого объявления свою папку(тут тоже вопрос как называть папки). но почему-то движки не используют создание папок... а просто создают в одной папке картинки с очень уродливыми именами... в общем я запутался в этом вопросе! буду рад любым советам по этой теме!
2)есть массив двухмерный и значения типа $array[1][theme],$array[2][theme]... значения их это id тем. получается нужно перебирать все элементы, и изменять их. но для 100 элементов, и 10 тем. нужно сделать 1000 переборов... ведь это ресурсы есть будет не плохо? зачем тогда оптимизировать БД вышеизложенным способом?
P.S. сижу с кпк. сайт выглядит не плохо! респект верстальщику!

   
 
 автор: Киналь   (04.08.2007 в 19:10)   письмо автору
 
   для: tricket   (04.08.2007 в 18:45)
 

Первая проблема легко решается с помощью базы данных - храните данные там, а фотографии в одной папке; имена фотографиям можно давать вида id_объявления.Имя_фотки.jpg, если уже не устраивает "некрасивое" имя из одного только ID.

   
 
 автор: tricket   (04.08.2007 в 19:36)   письмо автору
 
   для: Киналь   (04.08.2007 в 19:10)
 

я хочу сделать тоже самое но так
папка(id объявления)/имя_рисунка.jpeg
в чём минусс по сравнению с Вашим способом?

   
 
 автор: Киналь   (04.08.2007 в 20:23)   письмо автору
 
   для: tricket   (04.08.2007 в 19:36)
 

Минус в производительности. Файлы по определению медленне БД, и при более-менее приличном количестве объявлений это будет оченб ощутимо. К тому же в случае файлов практически невозможено делать сложные выборки, не говоря уж о поиске по ключевым словам. Если же хранить текст объявления в БД, а фотографии в отделных папках, то это, конечно, лучше, хотя и "неспортивно"=) К тому же, помимо неспортивности, это не позволит в будущем поменять структуру храннения данных - например, вы захотите прикладывать к некоторым объявлениям нескоько фотографий, или по каким-то причинам решите, что такие имена папок вас не устраивают, или еще что-нибудь, мало ли.

   
 
 автор: tricket   (04.08.2007 в 20:34)   письмо автору
 
   для: Киналь   (04.08.2007 в 20:23)
 

нет нет я не про это... данные в БД будут хранится!
я про хранения самих картинок. не удобнее ли их хранить не в одной папке а разбив по категориям?
типа prodaga/auto/id/picture1.jpg . а все текстовые данные в БД естественно...

   
 
 автор: Киналь   (04.08.2007 в 21:17)   письмо автору
 
   для: tricket   (04.08.2007 в 20:34)
 

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

   
 
 автор: tricket   (04.08.2007 в 21:29)   письмо автору
 
   для: Киналь   (04.08.2007 в 21:17)
 

зато бекапить будет легче.. и в случае чего-нибудь экстренного(тьфу тьфу тьфу) легче восстанавливать...
хм а с точки зрения OS и файловой системы что лучше?
поидее лучше к примере 100 папок в каждой из которых по 10 изображений, чем 1 папку с 1000 изображений?
я не ошибаюсь?

   
 
 автор: Киналь   (04.08.2007 в 23:35)   письмо автору
 
   для: tricket   (04.08.2007 в 21:29)
 

>зато бекапить будет легче.. и в случае чего-нибудь экстренного(тьфу тьфу тьфу) легче восстанавливать...

Ну-у... Таблица бэкапится одним запросом, а куча папок - рекурсивным циклом с фиговой тучей итераций; восстановление - аналогично.

>хм а с точки зрения OS и файловой системы что лучше?
>поидее лучше к примере 100 папок в каждой из которых по 10 изображений, чем 1 папку с 1000 изображений?
>я не ошибаюсь?

Это ууже не ко мне, но подозреваю, что это совершенно без разницы)

   
 
 автор: Trianon   (05.08.2007 в 16:47)   письмо автору
 
   для: tricket   (04.08.2007 в 21:29)
 

хм а с точки зрения OS и файловой системы что лучше?
поидее лучше к примере 100 папок в каждой из которых по 10 изображений, чем 1 папку с 1000 изображений?


C точки зрения современных файловых систем (ntfs, reiserfs) объем каталога никак не влияет на быстродействие. А лишний уровень вложенности влияет, (и всегда влиял) заставляя кешировать большее количество каталоговых записей. Хотя куда больше он влияет не на быстродействие, а на сложность скриптов.

Если Вы хотите простой бэкап - храните всё в БД . Вообще всё, в т.ч. и фотографии.
Правда, при этом повысится нагрузка на сервер при отображении....


Кстати, я тоже не понимаю, почему дерево с файлами бэкатить проще, чем один каталог?

   
 
 автор: tricket   (05.08.2007 в 16:53)   письмо автору
 
   для: Trianon   (05.08.2007 в 16:47)
 

ну блин просто выглядит красивее)
с первой проблемой я понял как решить) всем спасибо) ответье пожалуйста ещё на маленький второй вопросик)

   
 
 автор: Киналь   (05.08.2007 в 17:46)   письмо автору
 
   для: tricket   (05.08.2007 в 16:53)
 

>ну блин просто выглядит красивее)

В таком случае посмотрите в сторону mod_rewrite, возможно, он вам сильно поможет)

   
 
 автор: Jura   (05.08.2007 в 18:20)   письмо автору
 
   для: tricket   (05.08.2007 в 16:53)
 

Настоятельно рекомендую хранить файлы внутри одной папки, просто имена файлов можно организовывать по системе. Для примера есть файл с русским названием ОБЪЯВЛЕНИЕ11.JPG

Понятное дело, что при попадании файла на сервер наименование лучше изменить, так как если будут в названии русские буквы, да еще и регистр будет меняться, то будут сложности с выводом картинок. Самый рациональный способ, при закачке, переименовывать файл в нечто подобное 01_20070305_1710.jpg и в базе записывать путь до картинки. А выводить картинку через скрипт для примера pic.php?pic=mysql_id, где вместо mysql_id - номер картинки. А отрисовку картинки лучше доверить скрипту, так как существует дополнительная возможность в случае отсутствия картинки оповестить админа и/или восстановить картинку из бекапа, если данный бекап, скажем суточный, хранится в другой папке.

Какой плюс такого вывода картинок? При момощи mod_rewrite можно сделать короткие адреса. В итоге клиент будет видеть красивые названия, но без знания конкретного пути до картинок, что тоже в некоторых случаях требуется.

Тут уже выбирайте как проще и производительнее.

   
 
 автор: tricket   (05.08.2007 в 20:41)   письмо автору
 
   для: Jura   (05.08.2007 в 18:20)
 

киналь и Jura большое спасибо!!! дали хорошую пищу для размышлений!

   
Rambler's Top100
вверх

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