Mysql Связь один ко многим

nefone

Новичок
Проблема такая: есть база (MySQL) с содержимым
|id|text|image|
|1|text1|url1|
|2|text2|url2|
Как сделать что бы к одному тексту можно было добавлять много изображений?
 

Вурдалак

Продвинутый новичок
Вынести их в отдельную таблицу.

Хотя it depends, я иногда использую JSON-поле с массивом.
 
Последнее редактирование:

AnrDaemon

Продвинутый новичок
Если не стоит задачи искать эти изображения по базе (по крайней мере, не постоянно), JSON вполне себе решение.
Парсится просто, а при очень большой необходимости по базе всё таки найти можно.
 

nefone

Новичок
Вынести их в отдельную таблицу.
тогда у нас получается так:

таблица текста:
|id|text|image_id|
|1|text1|1|
|2|text2|2|

таблица изображений:
|id|image|
|1|url1|
|2|url2|
Что то не то...

JSON вполне себе решение.
Сделать в таблице поле image с типом JSON и хранить там объекты со ссылками на изображения?
 

AnrDaemon

Продвинутый новичок

Фанат

oncle terrible
Команда форума
Код:
таблица текста:
|id|text|image_id|
|1|text1|
|2|text2|

таблица изображений:
|id|image|text_id
|1|url1|1
|2|url2|1
|3|url3|2
А этих двух дураков не слушай.
 

damner2

Новичок
Код:
таблица текста:
|id|text|
|1|text1|
|2|text2|

таблица изображений:
|id|image|text_id
|1|url1|1
|2|url2|1
|3|url3|2
Третий тоже накосячил =)
 

nefone

Новичок
и тогда в первой таблице делаем внешнюю связь:
Код:
PRIMARY KEY (`id`),
CONSTRAINT `FK_text_text_images` FOREIGN KEY (`id`) REFERENCES `text_images` (`text_id`);
а дальше стоит ли задавать ключ в таблице text_images? или это не обязательно?
Код:
KEY `text_id` (`text_id`)
если в таблице с путями изображений не задать KEY для 'text_id' , то ловим ошибку
Error 1215: Cannot add foreign key constraint
 
Последнее редактирование:

WMix

герр M:)ller
Партнер клуба
а дальше стоит ли задавать ключ в таблице text_images? или это не обязательно?
стоит
если в таблице с путями изображений [del]не[/del] задать KEY для 'text_id' , то ловим ошибку
Error 1215: Cannot add foreign key constraint
данные не консистентны?
 

nefone

Новичок
данные не консистентны?
Осознал, что надо делать внешний ключ не для 'id' из таблицы 'text', а для 'text_id' из таблицы 'text_images'.
Внешний ключ должен быть первичным в своей таблице.
Код:
  KEY `FK_text_images_text` (`text_id`),
  CONSTRAINT `FK_text_images_text` FOREIGN KEY (`item_id`) REFERENCES `text` (`id`)
 
Сверху