Задать вопрос
@kofon
Я человек

Как назвать изображения в БД?

Пусть аватарки юзеров хранятся по пути example.com/img/user/some_photo.jpg
Что лучше хранить в базе данных?

Естественно не абсолютный путь...
Думаю /img хранить не стоит, можно добавлять по ходу. Но теперь вопрос:
user/some_photo.jps или some_photo.jpg (а класс User будет вставлять user/)

Нужно ли так заморачиваться или просто хранить как /img/user/some_photo.jpg

Кто как из вас делает?
Если ли проблемы с тем или иным методом хранения?
  • Вопрос задан
  • 473 просмотра
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 4
dizballanze
@dizballanze
Software developer at Yandex
Чем меньше храните - тем проще будет что-то переделать.
Чем больше храните - тем меньше логики для генерации полного урла.
Мне кажется лучше всего хранить или только навание файла или название файла + название сгенерированных директорий (если изображения шардятся по папкам 01/some_img.jpg).
Ответ написан
thewind
@thewind
php программист, front / backend developer
user - меняется? (это ник пользователя?)
Если меняется, то скрипт генерирует этот путь по ID пользователя.
Если не меняется, то зачем хранить эту часть в БД? Тогда надо записывать только название файла самого.
Папка /img/ - это вообще в конфиг
Ответ написан
65536
@65536
я при загрузке и после всех ресайзов замеряю md5 и sha1 картинки, составляю из них путь, получается типа /images/0c/c1/c5/bd/3ed21a48.jpg в бд храню скомпиленный путь и в специальном поле условный идентификатор картинки, например users/avatars/23, ну и еще поле для разных версий картинок и еще одно объединяющее эти версии чтобы удалять можно было одним движением. дополнительное преимущество такое что одна и та же картинка физически хранится один раз даже если залита 100 раз

gyazo.com/cbf5c71decc901855fb98b4d89e1c1e8
Ответ написан
Комментировать
Я при загрузке аватарки пользователя, переименовываю их по типу md5($userid.$salt), и складирую их в папку, также как правило генерирую тумбнейлы md5($userid.$salt.'100') или md5($userid.$salt.'origin'), при таком подходе нет нужны хранить что либо в базе, да и саму картинку отыскать не сложно, берем ай ди пользователя хешируем как делали это ранее с картинкой, и получаем имя файла
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы