powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Структура таблиц с изображениями в базе данных
25 сообщений из 44, страница 1 из 2
Структура таблиц с изображениями в базе данных
    #39217446
ukrainian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Честно говоря, эта тема касается не только MYSQL, но и других баз, а также PHP, а в место изображений, может быть и видео. Я думаю, это будет интересно многим, так как, в интернете, внятного ответа ми не нашли.
Когда мы подошли к этой теме, то не думали, что будет все так сложно. И так, после некоторых раздумий, были определены 3 вопроса.

1) Как организовать хранение изображений (ссылок на изображения) в базе;
2) Как лучше хранить изображения в файловой системе;
3) Как хранить изображения после загрузки их, в каком-нибудь редакторе, например CkEditor;


Давайте начнем с первого пункта.

1) Как организовать хранение изображений в базе;

Создаем таблицу, например images с такими столбцами:
id_image; image

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

Создаем ее: id_folder; folder; path_folder (folder- будем хранитъ имена папок; path_folder- для вывода всех папок в зависимости от системы построения иерархической структуры ).

Создаём еще один столбец в таблице images- images_path ; где будем хранить путь к родительской папке.

На этом можно было бы остановится, но... что делать, если одно и тоже изображение используется несколькими разными страницами или галереями? Если мы захотим удалитъ изображение, как мы узнаем используется ли оно или нет?

Подумав немножко) мы пришли к тому, что нужно как-то хранить в базе, используется ли данное изображение на сайте или нет.
Для этого мы создали в таблице images, столбец - count_images ; где будем хранить количество раз, которое используется это изобразение на сайте. Правда, есть и минусы такого решения: при каждом добавлении, либо удалении изображения, приходится обновлять данные столбца -count_images.

По первому вопросу, думаю все.

Хотелось бы услышать, что думаете по тому, что я написал, а также, как вы организовываете структуру таблиц с изображениями в базе.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217458
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема обсуждалась уже много раз.
Вот - http://www.sql.ru/forum/1208933/hranenie-izobrazheniy-v-bd-ili-v-fs - совсем недавно было.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217468
ukrainian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТема обсуждалась уже много раз.
Вот - http://www.sql.ru/forum/1208933/hranenie-izobrazheniy-v-bd-ili-v-fs - совсем недавно было.

Просмотрел эту тему, но в ней это все достаточно поверхностно рассмотрено, например, про синхронизацию фс и базы данных нет ни слова.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217474
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukrainianавторТема обсуждалась уже много раз.
Вот - http://www.sql.ru/forum/1208933/hranenie-izobrazheniy-v-bd-ili-v-fs - совсем недавно было.

Просмотрел эту тему, но в ней это все достаточно поверхностно рассмотрено, например, про синхронизацию фс и базы данных нет ни слова.
что значит синхронизация?
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217479
ukrainian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть изображения которые находятся в папке images; часть из них используется 1 раз, другие -много раз разными страницами, часть -ни разу не используется (то есть, их можно со спокойной совестью удалять). И, поэтому, нужно организовать взаимодействие между фс и базой так, чтобы с одной стороны не хранить всякий хлам, а с другой, чтобы не удалить ни чего лишнего.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217480
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторСоздаем таблицу, например images с такими столбцами:
id_image; image

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

автор Правда, есть и минусы такого решения: при каждом добавлении, либо удалении изображения, приходится обновлять данные столбца -count_images.
если это для тебя минус, то остаётся только сожалеть
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217483
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukrainianавторТема обсуждалась уже много раз.
Вот - http://www.sql.ru/forum/1208933/hranenie-izobrazheniy-v-bd-ili-v-fs - совсем недавно было.

Просмотрел эту тему, но в ней это все достаточно поверхностно рассмотрено,Ну это одна последняя тема, а на форуме их были десятки.ukrainian например, про синхронизацию фс и базы данных нет ни слова.Как и вопрос "хранить в ФС или в БД", эти вопросы не являются автономными, а являются следствием из всей архитектуры вашей системы. Т.е. в отрыве от нее можно только абстрактно потеоретизировать, но не решить эти вопросы.

Кроме того, для разных категорий изображений и в разных частях системы может быть сделано по-разному.
Например, у нас изображения товаров хранятся в BLOB-ах в основной корпоративной БД, в BFILE-ах в филиальных копиях (в MySQL такого нет) и в ФС на сайте. И в каждом случае для синхронизации создан специальных механизм. А вот оформительские картинки на сайте тоже хранятся в ФС, но их мало, меняются они редко и за их синхронизацией никто не следит.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217484
ukrainian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторни кто не запрещает в поле image хранить полный путь к файлу вместе с именем файла.

хранить абсолютный путь к изображению, на мой взгляд, очень не правильная идея;

автори ни кто не закачивает файлы картинок через файловый менеджел, идет загрузка через страницу сайта

во всех CMS есть файловый менеджер, который используется на сайте, через который можно создавать, удалять, и вроде бы, переименовывать папки.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217488
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukrainianавторни кто не запрещает в поле image хранить полный путь к файлу вместе с именем файла.

хранить абсолютный путь к изображению, на мой взгляд, очень не правильная идея;

автори ни кто не закачивает файлы картинок через файловый менеджел, идет загрузка через страницу сайта

во всех CMS есть файловый менеджер, который используется на сайте, через который можно создавать, удалять, и вроде бы, переименовывать папки.

1) очень ошибочный взгляд
2) файловый менеджер CMS - это самая обыкновенная страница сайта. загружая через которую можно поместить картинку в нужную папку, при этом в таблицу помещается полный путь. для сайта основным параметром картинки является id в этой таблице

на все страницы сайта картинки помещаются по id , а уж потом этот id конвертируется в путь, при конечном формировании страницы. который должен быть вести отсчёт от корня сайта.

привсём размышлении о хранении ты на обртил внимение на одну важную вещь- кроме полного вида картинки, надо хранить и превьюшки, а это дополнительные действия.
и повторю - картинки хранить лучшене в каталоге сайта, а в не его, но это делает недоступным картинки для индикации на странице, без небольшого действия
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217489
ukrainian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторКроме того, для разных категорий изображений и в разных частях системы может быть сделано по-разному.
Например, у нас изображения товаров хранятся в BLOB-ах в основной корпоративной БД, в BFILE-ах в филиальных копиях (в MySQL такого нет) и в ФС на сайте. И в каждом случае для синхронизации создан специальных механизм. А вот оформительские картинки на сайте тоже хранятся в ФС, но их мало, меняются они редко и за их синхронизацией никто не следит.

В первую очередь, идет речь о изображениях, которые могут быть часто изменены: например, на страницах с товаром или статьёй. Их может быть много, поэтому, в данном случае, хранить в поле BLOB не рассматриваем.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217493
ukrainian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автор1) очень ошибочный взгляд
2) файловый менеджер CMS - это самая обыкновенная страница сайта. загружая через которую можно поместить картинку в нужную папку, при этом в таблицу помещается полный путь. для сайта основным параметром картинки является id в этой таблице

на все страницы сайта картинки помещаются по id , а уж потом этот id конвертируется в путь, при конечном формировании страницы. который должен быть вести отсчёт от корня сайта.

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

То есть, ты мне рекомендуешь писать полный путь к изображению. Ок, прописал я полный путь, например sprt/имя.jpg 100 картинкам, а после переименования в фс на сайте, папки sport, что прикажешь мне делать?

Хранение превъю в базе, ни чем не отличается от других изображений.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217496
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТо есть, ты мне рекомендуешь писать полный путь к изображению. Ок, прописал я полный путь, например sprt/имя.jpg 100 картинкам, а после переименования в фс на сайте, папки sport, что прикажешь мне делать?

смысла переименовывать нет.
но если ты переименуешь средствами ос - ты замаешься находить соответствие.
если переменование средствами сайта - всё под контролем "сайта" - перименовал папку - переписал в базе.

авторХранение превъю в базе, ни чем не отличается от других изображений.
совершенно ничем, пока не начнёшь это делать, вместо рассуждени.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217500
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukrainian,

картинка --есть картинка --чистый справочник, типа м/ж
только есть дополнительный реквизит--папка, из справочника папок

с ним --проблем больше --нельзя удалить папку, пока в ней есть картинки
проблемы и со слиянием папок --если некие картинки из папок 1-3-5 надо перенести надо перенести в папку 8, то надо в справочнике изменить ссылку на парку и физически перенести картинки

к сожалению имена картинок часто повторяются
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217505
ukrainian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что значит, под контролем сайта? что ты говоришь? папка переименуется в фс, а в базе мне прийдется перезаписывать все пути к этим, например 100, а может бить и 1000 изображениям?
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217506
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukrainianВ первую очередь, идет речь о изображениях, которые могут быть часто изменены: например, на страницах с товаром или статьёй. Их может быть много, поэтому, в данном случае, хранить в поле BLOB не рассматриваем.Много - это сколько? Хотя бы миллион будет?
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217507
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukrainianавторни кто не запрещает в поле image хранить полный путь к файлу вместе с именем файла.

хранить абсолютный путь к изображению, на мой взгляд, очень не правильная идея;Если нужно хранить путь, то лучше хранить не абсолютный, а относительный путь. А базовый путь держать в настройках.
Когда понадобится куда-то перенести дерево каталогов с файлами, то достаточно будет изменить базовый путь в настройках.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217509
ukrainian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторМного - это сколько? Хотя бы миллион будет?

и что, у вас миллион картинок хранится в MYSQL и все нормально работает, без тормозов?
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217512
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ukrainianавторМного - это сколько? Хотя бы миллион будет?и что, у вас миллион картинок хранится в MYSQL и все нормально работает, без тормозов?Нет, корпоративная БД у нас в другой СУБД лежит.
И пока еще не миллион, примерно сто-двести тысяч.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217513
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПЕНСИОНЕРКАukrainian,

картинка --есть картинка --чистый справочник, типа м/ж
только есть дополнительный реквизит--папка, из справочника папок

с ним --проблем больше --нельзя удалить папку, пока в ней есть картинки
проблемы и со слиянием папок --если некие картинки из папок 1-3-5 надо перенести надо перенести в папку 8, то надо в справочнике изменить ссылку на парку и физически перенести картинки

к сожалению имена картинок часто повторяются
смысл перемещения и слияния папок для хранения картинок не имеет смысла.
для избежания дублирования имен - достаточно присохранении файла присвоить ему случайное имя (достаточно сформировать имя из uuid)
первые три знака использовать как имена папок/подпапок
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217516
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторЕсли нужно хранить путь, то лучше хранить не абсолютный, а относительный путь. А базовый путь держать в настройках.
Когда понадобится куда-то перенести дерево каталогов с файлами, то достаточно будет изменить базовый путь в настройках.
самое трудное это вынести файлы из каталого сайта
и , конечно , надо хранить еще где-то абсолютный путь до папки с файлами для разных осей.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217518
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНет, корпоративная БД у нас в другой СУБД лежит.
И пока еще не миллион, примерно сто-двести тысяч.
какая разница сколько файлов?
отсновное требование - чтоб не более нескольуих сотен в ппапке, иначе начинает тормозить файловая система
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217522
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадясамое трудное это вынести файлы из каталого сайтаИ чего тут трудного?
У нас такое было несколько раз, когда переезжали с хостинга на хостинг и когда кардинально меняли структуру сайта.
вадяи , конечно , надо хранить еще где-то абсолютный путь до папки с файлами для разных осей.Можно там же, где хранятся остальные настройки сайта, такие как строка подключения к БД и т.п.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217523
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадяавторНет, корпоративная БД у нас в другой СУБД лежит.
И пока еще не миллион, примерно сто-двести тысяч.
какая разница сколько файлов?
отсновное требование - чтоб не более нескольуих сотен в ппапке, иначе начинает тормозить файловая системаНа самом деле тормозить в первую очередь начинают всякие GUI-инструменты, например, проводник в Windows. Если ими не пользоваться, то сама ФС начинает тормозить при значительно больших количествах.
В качестве компромиссного варианта у нас в каталоге в среднем порядка 2000 файлов.
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217524
ukrainian
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вадя , смотри: есть сайт, на нем стоит фм и там есть возможность удалять, изменять, перемещать разные папки, например как в opencart или в других системах.
То есть, мы не говорим, о том, целесообразно это или нет, есть функционал и его нужно реализовывать, понимаешь меня?
...
Рейтинг: 0 / 0
Структура таблиц с изображениями в базе данных
    #39217526
вадя
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторНа самом деле тормозить в первую очередь начинают всякие GUI-инструменты, например, проводник в Windows. Если ими не пользоваться, то сама ФС начинает тормозить при значительно больших количествах.
В качестве компромиссного варианта у нас в каталоге в среднем порядка 2000 файлов.
2000 это уже слишком, максимум 500,
...
Рейтинг: 0 / 0
25 сообщений из 44, страница 1 из 2
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Структура таблиц с изображениями в базе данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]