|
|
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
Честно говоря, эта тема касается не только 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. По первому вопросу, думаю все. Хотелось бы услышать, что думаете по тому, что я написал, а также, как вы организовываете структуру таблиц с изображениями в базе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 00:43 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
Тема обсуждалась уже много раз. Вот - http://www.sql.ru/forum/1208933/hranenie-izobrazheniy-v-bd-ili-v-fs - совсем недавно было. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 03:48 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
авторТема обсуждалась уже много раз. Вот - http://www.sql.ru/forum/1208933/hranenie-izobrazheniy-v-bd-ili-v-fs - совсем недавно было. Просмотрел эту тему, но в ней это все достаточно поверхностно рассмотрено, например, про синхронизацию фс и базы данных нет ни слова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 10:31 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
ukrainianавторТема обсуждалась уже много раз. Вот - http://www.sql.ru/forum/1208933/hranenie-izobrazheniy-v-bd-ili-v-fs - совсем недавно было. Просмотрел эту тему, но в ней это все достаточно поверхностно рассмотрено, например, про синхронизацию фс и базы данных нет ни слова. что значит синхронизация? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 10:46 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
Есть изображения которые находятся в папке images; часть из них используется 1 раз, другие -много раз разными страницами, часть -ни разу не используется (то есть, их можно со спокойной совестью удалять). И, поэтому, нужно организовать взаимодействие между фс и базой так, чтобы с одной стороны не хранить всякий хлам, а с другой, чтобы не удалить ни чего лишнего. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 11:07 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
авторСоздаем таблицу, например images с такими столбцами: id_image; image Все, как будто бы, не плохо, но, во-первых, все изображения в одну папку не хочется запихивать, а во-вторых, через файловый менеджер можно создавать папки и закачивать туда изображения. Тогда, получается, нужно создать еще одну таблицу, например folders, в которой будем хранить все созданные папки для изображений. ни кто не запрещает в поле image хранить полный путь к файлу вместе с именем файла. и ни кто не закачивает файлы картинок через файловый менеджел, идет загрузка через страницу сайта автор Правда, есть и минусы такого решения: при каждом добавлении, либо удалении изображения, приходится обновлять данные столбца -count_images. если это для тебя минус, то остаётся только сожалеть ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 11:11 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
ukrainianавторТема обсуждалась уже много раз. Вот - http://www.sql.ru/forum/1208933/hranenie-izobrazheniy-v-bd-ili-v-fs - совсем недавно было. Просмотрел эту тему, но в ней это все достаточно поверхностно рассмотрено,Ну это одна последняя тема, а на форуме их были десятки.ukrainian например, про синхронизацию фс и базы данных нет ни слова.Как и вопрос "хранить в ФС или в БД", эти вопросы не являются автономными, а являются следствием из всей архитектуры вашей системы. Т.е. в отрыве от нее можно только абстрактно потеоретизировать, но не решить эти вопросы. Кроме того, для разных категорий изображений и в разных частях системы может быть сделано по-разному. Например, у нас изображения товаров хранятся в BLOB-ах в основной корпоративной БД, в BFILE-ах в филиальных копиях (в MySQL такого нет) и в ФС на сайте. И в каждом случае для синхронизации создан специальных механизм. А вот оформительские картинки на сайте тоже хранятся в ФС, но их мало, меняются они редко и за их синхронизацией никто не следит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 11:27 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
авторни кто не запрещает в поле image хранить полный путь к файлу вместе с именем файла. хранить абсолютный путь к изображению, на мой взгляд, очень не правильная идея; автори ни кто не закачивает файлы картинок через файловый менеджел, идет загрузка через страницу сайта во всех CMS есть файловый менеджер, который используется на сайте, через который можно создавать, удалять, и вроде бы, переименовывать папки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 11:27 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
ukrainianавторни кто не запрещает в поле image хранить полный путь к файлу вместе с именем файла. хранить абсолютный путь к изображению, на мой взгляд, очень не правильная идея; автори ни кто не закачивает файлы картинок через файловый менеджел, идет загрузка через страницу сайта во всех CMS есть файловый менеджер, который используется на сайте, через который можно создавать, удалять, и вроде бы, переименовывать папки. 1) очень ошибочный взгляд 2) файловый менеджер CMS - это самая обыкновенная страница сайта. загружая через которую можно поместить картинку в нужную папку, при этом в таблицу помещается полный путь. для сайта основным параметром картинки является id в этой таблице на все страницы сайта картинки помещаются по id , а уж потом этот id конвертируется в путь, при конечном формировании страницы. который должен быть вести отсчёт от корня сайта. привсём размышлении о хранении ты на обртил внимение на одну важную вещь- кроме полного вида картинки, надо хранить и превьюшки, а это дополнительные действия. и повторю - картинки хранить лучшене в каталоге сайта, а в не его, но это делает недоступным картинки для индикации на странице, без небольшого действия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 11:43 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
авторКроме того, для разных категорий изображений и в разных частях системы может быть сделано по-разному. Например, у нас изображения товаров хранятся в BLOB-ах в основной корпоративной БД, в BFILE-ах в филиальных копиях (в MySQL такого нет) и в ФС на сайте. И в каждом случае для синхронизации создан специальных механизм. А вот оформительские картинки на сайте тоже хранятся в ФС, но их мало, меняются они редко и за их синхронизацией никто не следит. В первую очередь, идет речь о изображениях, которые могут быть часто изменены: например, на страницах с товаром или статьёй. Их может быть много, поэтому, в данном случае, хранить в поле BLOB не рассматриваем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 11:49 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
автор1) очень ошибочный взгляд 2) файловый менеджер CMS - это самая обыкновенная страница сайта. загружая через которую можно поместить картинку в нужную папку, при этом в таблицу помещается полный путь. для сайта основным параметром картинки является id в этой таблице на все страницы сайта картинки помещаются по id , а уж потом этот id конвертируется в путь, при конечном формировании страницы. который должен быть вести отсчёт от корня сайта. привсём размышлении о хранении ты на обртил внимение на одну важную вещь- кроме полного вида картинки, надо хранить и превьюшки, а это дополнительные действия. и повторю - картинки хранить лучшене в каталоге сайта, а в не его, но это делает недоступным картинки для индикации на странице, без небольшого действия То есть, ты мне рекомендуешь писать полный путь к изображению. Ок, прописал я полный путь, например sprt/имя.jpg 100 картинкам, а после переименования в фс на сайте, папки sport, что прикажешь мне делать? Хранение превъю в базе, ни чем не отличается от других изображений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 12:02 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
авторТо есть, ты мне рекомендуешь писать полный путь к изображению. Ок, прописал я полный путь, например sprt/имя.jpg 100 картинкам, а после переименования в фс на сайте, папки sport, что прикажешь мне делать? смысла переименовывать нет. но если ты переименуешь средствами ос - ты замаешься находить соответствие. если переменование средствами сайта - всё под контролем "сайта" - перименовал папку - переписал в базе. авторХранение превъю в базе, ни чем не отличается от других изображений. совершенно ничем, пока не начнёшь это делать, вместо рассуждени. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 12:18 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
ukrainian, картинка --есть картинка --чистый справочник, типа м/ж только есть дополнительный реквизит--папка, из справочника папок с ним --проблем больше --нельзя удалить папку, пока в ней есть картинки проблемы и со слиянием папок --если некие картинки из папок 1-3-5 надо перенести надо перенести в папку 8, то надо в справочнике изменить ссылку на парку и физически перенести картинки к сожалению имена картинок часто повторяются ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 12:26 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
что значит, под контролем сайта? что ты говоришь? папка переименуется в фс, а в базе мне прийдется перезаписывать все пути к этим, например 100, а может бить и 1000 изображениям? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 12:37 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
ukrainianВ первую очередь, идет речь о изображениях, которые могут быть часто изменены: например, на страницах с товаром или статьёй. Их может быть много, поэтому, в данном случае, хранить в поле BLOB не рассматриваем.Много - это сколько? Хотя бы миллион будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 12:43 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
ukrainianавторни кто не запрещает в поле image хранить полный путь к файлу вместе с именем файла. хранить абсолютный путь к изображению, на мой взгляд, очень не правильная идея;Если нужно хранить путь, то лучше хранить не абсолютный, а относительный путь. А базовый путь держать в настройках. Когда понадобится куда-то перенести дерево каталогов с файлами, то достаточно будет изменить базовый путь в настройках. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 12:48 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
авторМного - это сколько? Хотя бы миллион будет? и что, у вас миллион картинок хранится в MYSQL и все нормально работает, без тормозов? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 12:49 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
ukrainianавторМного - это сколько? Хотя бы миллион будет?и что, у вас миллион картинок хранится в MYSQL и все нормально работает, без тормозов?Нет, корпоративная БД у нас в другой СУБД лежит. И пока еще не миллион, примерно сто-двести тысяч. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 12:54 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
ПЕНСИОНЕРКАukrainian, картинка --есть картинка --чистый справочник, типа м/ж только есть дополнительный реквизит--папка, из справочника папок с ним --проблем больше --нельзя удалить папку, пока в ней есть картинки проблемы и со слиянием папок --если некие картинки из папок 1-3-5 надо перенести надо перенести в папку 8, то надо в справочнике изменить ссылку на парку и физически перенести картинки к сожалению имена картинок часто повторяются смысл перемещения и слияния папок для хранения картинок не имеет смысла. для избежания дублирования имен - достаточно присохранении файла присвоить ему случайное имя (достаточно сформировать имя из uuid) первые три знака использовать как имена папок/подпапок ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 12:54 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
авторЕсли нужно хранить путь, то лучше хранить не абсолютный, а относительный путь. А базовый путь держать в настройках. Когда понадобится куда-то перенести дерево каталогов с файлами, то достаточно будет изменить базовый путь в настройках. самое трудное это вынести файлы из каталого сайта и , конечно , надо хранить еще где-то абсолютный путь до папки с файлами для разных осей. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 12:59 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
авторНет, корпоративная БД у нас в другой СУБД лежит. И пока еще не миллион, примерно сто-двести тысяч. какая разница сколько файлов? отсновное требование - чтоб не более нескольуих сотен в ппапке, иначе начинает тормозить файловая система ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 13:01 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
вадясамое трудное это вынести файлы из каталого сайтаИ чего тут трудного? У нас такое было несколько раз, когда переезжали с хостинга на хостинг и когда кардинально меняли структуру сайта. вадяи , конечно , надо хранить еще где-то абсолютный путь до папки с файлами для разных осей.Можно там же, где хранятся остальные настройки сайта, такие как строка подключения к БД и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 13:05 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
вадяавторНет, корпоративная БД у нас в другой СУБД лежит. И пока еще не миллион, примерно сто-двести тысяч. какая разница сколько файлов? отсновное требование - чтоб не более нескольуих сотен в ппапке, иначе начинает тормозить файловая системаНа самом деле тормозить в первую очередь начинают всякие GUI-инструменты, например, проводник в Windows. Если ими не пользоваться, то сама ФС начинает тормозить при значительно больших количествах. В качестве компромиссного варианта у нас в каталоге в среднем порядка 2000 файлов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 13:09 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
вадя , смотри: есть сайт, на нем стоит фм и там есть возможность удалять, изменять, перемещать разные папки, например как в opencart или в других системах. То есть, мы не говорим, о том, целесообразно это или нет, есть функционал и его нужно реализовывать, понимаешь меня? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 13:09 |
|
||
|
Структура таблиц с изображениями в базе данных
|
|||
|---|---|---|---|
|
#18+
авторНа самом деле тормозить в первую очередь начинают всякие GUI-инструменты, например, проводник в Windows. Если ими не пользоваться, то сама ФС начинает тормозить при значительно больших количествах. В качестве компромиссного варианта у нас в каталоге в среднем порядка 2000 файлов. 2000 это уже слишком, максимум 500, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.04.2016, 13:28 |
|
||
|
|

start [/forum/topic.php?fid=47&fpage=104&tid=1831892]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
16ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
40ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 329ms |

| 0 / 0 |
