@vladimirir

Как лучше всего хранить и получать аватар пользователя?

Многие пишут, что аватары лучше всего хранить в файловой системе и просто иметь в базе данных (как я понял, условно в таблице users) столбец с путями до этих самых файлов у каждого пользователя. Соответственно просто каждый раз вынимать эту строку из БД.
Есть ли какой-то смысл (может, это не эффективно или ещё что-то) поступить следующим образом: все логины уникальны, каждый аватар именуется как "login.extension". И для вывода аватаров на сайте тогда не хранить пути к ним в базе данных, а просто искать для каждого пользователя его аватар по логину?
  • Вопрос задан
  • 416 просмотров
Пригласить эксперта
Ответы на вопрос 2
@antonwx
Смысла никакого нет. Вам всё равно получать логин пользователя, его дополнительные атрибуты и прочее. Вот в чём есть смысл - это в кэшировании уже сформированных страниц.
Ответ написан
FanatPHP
@FanatPHP
Чебуратор тега РНР
Логин - это самая дебильная вещь, какую похапе программисты смогли изобрести за все время своего существования. Хотя они в этом деле эксперты.

Мучений потом не оберёшься. Пользователи пишут вместо логина емейл, потому путаются где у них что, потом регистрируют ещё один аккаунт в котором указывают уже зарегистрированный емейл в качестве логина, а потом рыдают в службу поддержки что сайт их не пускает
Логин вообще надо выкинуть из базы данных, он никому не нужен. Есть емейл, под которым пользователь регистрируется - вот его и использовать для логина.

В данном же случае логин еще и не подходит для имени файла. Проблем с валидацией не оберешься.
При том, что есть гораздо более простое и надежное значение - автоикерементный id. То есть аватарки тупо сохраняются с именем совпадающим с шд пользователя. Даже расширение можно не делать. Ну или можно какое-то одно, png например. Браузеры все равно разберутся что показывать.

То есть для аватарок отдельная колонка точно не нужна. В нее просто нечего писать
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы