Mysql Хранение и поиск по массиву в БД

KotDX

Новичок
Здравствуйте. Стоит задача создать базу данных для сайта, содержащего информацию о фильмах. Создал таблицы в БД:
actors (
id
name​
)
films (
id
name
actors_id​
)
И вот с "actors_id" проблема. В этой ячейке содержится массив id актеров, как строка, элементы разделены запятой (допустим: 4, 8, 35, 67). Если выводить список фильмов подряд, то все нормально, использую explode и вывожу имена актеров. А если мне нужно вывести все фильмы, с участием актера (допустим: id=35), как организовать поиск по базе? Единственный для меня, новичка, вариант - это считать всю таблицу "films", сделать explode "actors_id" и перебрать все значения, нет ли где id=35, тогда вывести. Но ведь база фильмов может быть громадной. Может есть вариант быстродейственней или по крайней мере просто запрос в БД без explode и перебора? Заранее спасибо.
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Не надо хранить через запятую, надо хранить связи, сделай еще одну таблицу.
 

KotDX

Новичок
Не надо хранить через запятую, надо хранить связи, сделай еще одну таблицу.
Что-то вроде:
connections_films_actors (
film_id
actor_id​
)
И получиться, если актеров 4, то 4 записи:
film_id--------actor_id
1---------------4
1---------------8
1---------------35
1---------------67
Создать такую таблицу и такую структуру?
 
Последнее редактирование:

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
да, actors_to_films или как там хочешь назови.
 
Сверху