Аватары пользователей PHP

Возможный дубликат:
Хранение изображений в БД - да или нет?

Я строю систему, в которой пользователи могут загружать свои аватары. Я обнаружил, что есть два способа сделать это - сохранить изображение в базе данных или сохранить фактический путь к изображению в базе данных и сохранить изображение на жестком диске. Мне интересно, какой из этих способов использовать. Так какой из них лучше, а какой выбрать?

3 ответа

Обычный способ сделать это - 2-й, слишком много нагрузки на БД, чтобы хранить полный образ в виде BLOB, просто сохраните изображение в своем корне и путь в таблице БД.

Я бы не стал хранить изображения в базе данных, как отмечает 8vius, это слишком сильно напрягает базу данных. Вместо того, чтобы хранить путь в базе данных, вы также можете получить изображения по некоторому логическому алгоритму. Например, если у ваших пользователей есть уникальный идентификатор, вы можете с его помощью создать путь к изображению. Так что если у вашего пользователя есть идентификатор 1080, путь будет выглядеть примерно так: /avatars/1080.png

Кстати, вы знакомы с http://www.gravatar.com/? Если это соответствует вашим потребностям, это избавит вас от необходимости создавать эту функцию самостоятельно.

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

Другие вопросы по тегам