Здравствуйте. Предположим, что я пишу гостевую книгу, в которой к сообщениям будет прикрепляться фотографии и распостранено такое понятие как аватар. Также предположим, что этой гостевой книгой будет пользоваться миллион человек ежесекундно. Внимание вопрос: Лучше ли хранить путь до картинок в базе (и как грамотнее, в таком случае это сделать) или опираться на файловую структуру (проверять существование файла и исходя из этого делать выводы[glob, file_exists])? Лучше здесь понимается быстрее и надежнее. Спасибо.
ты чтоли так хорошо продвинулся, что пора о хайлоад думать? сделай просто чтобы работало и чтобы не стыдно друзьям показать. Добавлено спустя 35 секунд: неадекватных тут и так хватает. давай не теряй голову.
нах проверять на существовании картинки когда в базе урл записана? нету картинки - нету записи в базе.
Если вы не знаете, то так и скажите. Дело в том, что я задал конкретный вопрос и надеюсь услышать конкретный ответ. Гостевая книга лишь пример, и все обстрактно. И да, я продвинулся до уровня highload. Добавлено спустя 3 минуты 50 секунд: Вы не понимаете вероятно мою задумку. Предположим, что я выбрал путь работать только с файлами и есть папка Avatars и там есть картинки %uid%.jpg. Очевидно то, что я могу не обращаясь к бд, проверить стоит аватар у юзера или нет [file_exists($id.".jpg")]. Так я вот и хочу спросить, что оптимальнее, писать в бд, или основываться на специальной файловой структуре? Спасибо.
Идеальный совет. Вы уверены, что читали топик? Это СИСТЕМА. Как мне тогда вывести аватарку по умолчанию, или не выводить вложений в сообщении, или как мне получить их имена без бд и проверки на существование. Напомню, я спросил: ЧТО БЫСТРЕЕ СИСТЕМА ВЫБОРКИ НА ФАЙЛАХ ИЛИ БД? (подробнее описывал выше)
мой юный падаван, не все так невнимательны и одновременно грубы как ты ))) ты в своей СИСТЕМЕ не описал реакцию на отсутствие аватары у пользователя. или должна ли СИСТЕМА реагировать на то, что юзер сменил аватару. Добавлено спустя 4 минуты 10 секунд: для твоей воображаемой гостевой лучшим решением будет граватар.
Зачем использовать бд, когда у вас есть папка с именем зарегистрированного пользователя и в нем лежат фотки, на какой тут бд дергать когда тупо надо вывести ему в <мтаное слово> его аватарку(и). Один <матное слово> бд дернишь, выдернишь путь до загруженной картинки и опять же нужно работать с серверов, желательно ее конечно же проверить, что это такое путь или нет. является ли это вообще картинкой или нет, есть ли вообще картинка или нет. ПЕЗР
ты так все заебатовски говоришь когда у него все аватарки в одной папке Добавлено спустя 3 минуты 19 секунд: извращенец блин 100500 пользователей и для каждого надо found: LOX/ avatar/ LOX2/ avatar/ LOX3/ avatar/ LOX4/ avatar/ LOX5/ avatar/ я хуею вместе с файлообменником
Очень круто, ребята серьезно. У artoodetoo бомбануло. Принесите тряпку. Все обсудили все, кроме ответа непосредственно на вопрос. Код (Text): if (file_exists($name)) echo "<img src='{$name}' />"; или mysqli_query("SELECT avatar FROM users WHERE id='{$id}'"); Структура такова, есть сообщения. Для каждого сообщения, если в нем будет вложение(я) будет создана папка носящее его идентификатор как название, при помощи функции glob я получу все картинки и выведу в сообщение, у аватарок схема иная есть папка avatars а в ней картинки с id пользователей. 2artoodetoo: Я вообще не грубый. Просто я пришел сюда не тратить ваше время, на советы которые мне не нужны. Я сказал, что гостевая книга - абстракция, это был пример. Вы тратили время и ломали клавиатуру когда отвечали мне советами, вместо того чтобы ответить на главный вопрос. Именно за этим я его тут и переписывал его из поста в пост: (glob или file_exists) vs хранение в бд? Что выбрать и почему. Я вас уверяю, если мне захочется чтобы система могла менять аватары я смогу как ключ в базе изменить, так и файл заменить.
Предположим что у вас Id=1 и вы написали пост с pid=2 у меня в ФС содастся слеующая структура. avatars/1.jpg (выберу file_exists'ом) attach/2/*.jpg (выберу глобом) Зачем бд? Только вопрос выход ли это при большой нагрузке. Спасибо.
да пофик. вы когда до хайлоада дойдете, много чего интересного прочтете по дороге. Например, что всё кешируется и масштабируется и тд и тп. Вы хотите отдельную аватарку на каждый пост хранить? если да, то вы получается с каждым постом хотите новый файл создавать? три буквы написал - шесть килобайт картинку скопровал? накладно. Тогда уж вы имеете кучку аватаров. Посту надо имя аватарки присвоить. Откуда в вашем случае проще будет выковыривать - из бд или из файловой системы - я не знаю. Но можно предположить, что если вы на хайлоаде будете держать несклько серваков в бекэнде, то оно вам удобнее будет в БД.
Извини, плохо понимаю по тарабарски. Отвечу (для других) и помещаю тебя в игнор как безнадегу. Если вопрос в том, надо ли в файловой CMS искать аватару в базе данных, то совет: нет, не надо ))) Если надо выбрать как проверять наличие файла - glob или file_exists, то очевидно file_exists. А реальность такова: аватара у пользователя одна, путь до нее однозначно определяется user_id, хули там хранить. Был бы нюанс с обновляемыми аватарами и кешем браузера, но ты это просто не учитываешь - теоретик ёпта. Ок. Проверять наличие может сам вебсервер, в целях оптимизации настраиваем правила веб-сервера реакции на отсутствие статики. А img пусть будет всегда. Так все высоконагруженные фейсбуки с линкединами работают. Другой охуительный совет: пусть в гостевой используются граватары. Ты тоже не понял.
Да ладно вам $name."?".time() спасут от кэша. Я спросил, что быстрее искать в файловой системе или в бд. Но ответа так и не получил. Никто так и не понял мой вопрос( Я грущу.
в жежешечке можно на каждый пост аватарку другую. какая аватарка у тебя сейчас, такая же останется навсегда в посте, который ты сейчас напишешь. =) Добавлено спустя 3 минуты 39 секунд: что искать?
2artoodetoo: не игнорируйте своего подавана, возможно спылил. Простите. Ответ на мой вопрос, прочел в милом StackOverflow, там бы меня поняли( Кому интересно: http://stackoverflow.com/questions/...ased-or-file-system-based-which-one-is-faster
Ну ты везунчик! На SO редко бывает чтобы ни один ответ не получил статуса "решение" и даже плюсика не заработал. Проплюсуй хоть ты сам -- то что хочешь считать решением )))
Ну холивар, но что-то полезное можно почерпнуть. Из этого же треда - вообще ничего. Используйте gravatar и не сходите с ума, только если это за мысль взять треда.
MAN_IFE_ST, ты еще мальчик, глуп и не видал <матное слово>. Ты даже не понимаешь, о чем ты говоришь. Причем тут бд и файлы, я не понимаю. И чем плохо для каждого пользователя своя папка? Тебя убило название "Папка", что ты прям так вздрогнул и назвал всех пользователей лохами-не зная обозначения слова "Лох", сочувствую тебе. Но вернемся к папкам, они ничего не весят, "они не занимают места", с ними удобно хранить файлы, проще дернуть папку и взять с нее файл, чем листать и искать во всех в кучу собранных файлах какой-то 1 или несколько. В случае если будет какая-то затея, что у пользователя будет не 1 картинка, будет куда шустрее дернуть папку с пользователем и найти только в ней. По этому прежде чем <матное слово>, ты подумай а с чего ты будешь <матное слово>. Это все, что требуется. С базы данных вы можете взять ид пользователя и вывести по ней его картинку(и). В этой самой папке "avatars". Это было бы странным =)))
начнем лучше с папок. итак... еще раз повторю когда будут 100500 пользователей ты будешь кровью рыдать с файлообменником. (знаю по опыту уже) так что нефиг сказки сочинять. Про мальчика. В этом ты глубоко ошибаешься, если даже представления не имеешь когда куча папок нахуярятся , как будешь хуевать когда зайдешь в файловый менеджер. Ты сам не только мальчиком будешь, но и станешь школо - недотроллем. Будь добр не пустословь. Особенно про мальчика ггг)))