@Gleb316
Учиться и не бросать на половине.

Хранить ли фотки в базе данных?

Начал создавать сайт, возникла проблема как выводить постранично картинки.
Где-то 20-30 на каждой страницы и описание под каждой.
Как лучше реализовать это на php ? Я считаю хранить в базе mysql каждую картинку и вместе сней её размеры. Разумно ли это делать если картинок будет очень много ?
  • Вопрос задан
  • 831 просмотр
Решения вопроса 4
liveunit
@liveunit
Путь к изображению - да, само изображение хранить в бд не стоит.
Ответ написан
petermzg
@petermzg
Самый лучший программист
" Я считаю хранить в базе mysql каждую картинку и вместе сней её размеры."
Плохо.
1. У MySQL есть проблемы с таблицами, где помимо blob есть и другие поля. (Сталкивался с этим)
2. Проблематичнее делать бекапы базы, т.к. она сильно разрастется.

Добавлю:
Хранить картинки еще лучше на диске, так как в этом случае можно задействовать кеширование web сервера.
Ответ написан
rim89
@rim89
программист-велосипедист
Таблицу в БД создайте в 3 столбца:
ID | img_name | img_description
и всё. Потом в PHP делаете запрос в БД, указываете путь к папке с фоток и дальше формируете вывод как душе угодно
Ответ написан
sunsey
@sunsey
Web dev
Никакого смысла хранить сами картинки в базе, как по мне, нету.
Я на всех проектах храню только название картинки
типа такого
6202d04bcf0e48e5a87f21a854102d8a.png

само изображение ложу в папку webroot
допустим так
/images/events/original/eh_1409567560_54044b482a312.jpg
/images/events/size1/eh_1409567560_54044b482a312.jpg
/images/events/size2/eh_1409567560_54044b482a312.jpg

это если нужны превьюшки
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
maxminimus
@maxminimus
просто или ничего
посмотри как это работает в CMS ВебИздат, но там нет отдельной БД
встроенная БД простая, на файлах

структура очень простая:
1d4c13c06c834019a430caca3330b0fe.png
Ответ написан
gzhegow
@gzhegow
Думал, стану умнее, когда адаптируюсь, но нет
Мое мнение - что от этого нужно избавляться.
Если у тебя в фирме 1000 менеджерят, которые ничего не делают, а работать умеют только через CMS, вернее через нее тоже не умеют, но говорят что им надо - то это имеет смысл.

Уже давно картинки у нас лежат просто по внешнему коду товара (будь то код 1С или поставщика или присвоенный скриптом) - и лежат просто в одной папке. Когда находим товар без картинки - переименовываем и закидываем. А дальше твой сайт делает ресайз картинок, и по названию исходной фотки он всегда может проверить - есть ли кешированный мелкий размер и выводит его.

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

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

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

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

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

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