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

  • Автор темы Автор темы KotDX
  • Дата начала Дата начала

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