В настоящее время я работаю программистом в небольшом стартапе, целью которого является предоставление контента с оплатой за просмотр в Интернете, и мне поручено разработать базу метаданных для каталога фильмов
У меня есть две основные таблицы: movie и people , где * movie_ID * и * people_ID * - первичные ключи соответственно для каждой таблицы. Обе таблицы имеют отношение многие ко многим.
Для представления различных отношений я в настоящее время использую таблицы ссылок, например, actor_movie будет хранить * movie_ID * и соответствующий * people_ID * для каждого из актеров в фильме, тогда как Director_movie таблица будет хранить * movie_ID * и директора (ов) * people_ID *. То же самое касается писателя, композиторов и продюсеров.
Теперь моя проблема заключается в том, что мне нужно разработать запрос, который возвращает всех актеров, режиссеров, продюсеров, писателей, композиторов и т. Д. И т. Д. В одной таблице для передачи в веб-интерфейс веб-интерфейса в виде списка. все люди, участвующие в фильме.
В настоящее время я поставлен в тупик относительно того, как создать несколько запросов SELECT, которые бы объединяли все таблицы ссылок на основе * movie_ID * и * people_ID *, а затем возвращали сведения о каждом человеке в люди стол тоже.
И пример того, что я написал до сих пор:
SELECT
movie.titleMovie,
people.namePeople,
FROM
movie movie
INNER JOIN actorlinkmovie acm ON acm.idMovie = movie.idMovie
INNER JOIN people people ON people.idPeople = acm.idPeople
Я бы хотел, чтобы это произошло:
SELECT
movie.idMovie,
movie.titleMovie,
movie.descMovie,
movie.dateMovie,
movie.runtimeMovie,
movie.langMovie,
movie.ratingMovie,
people.namePeople
FROM
htv_movie movie
INNER JOIN htv_actorlinkmovie acm ON acm.idMovie = movie.idMovie
INNER JOIN htv_directorlinkmovie dcm ON dcm.idMovie = movie.idMovie
INNER JOIN htv_producerlinkmovie pcm ON pcm.idMovie = movie.idMovie
INNER JOIN htv_people people WHERE people.idPeople = dcm.idPeople AND people.idPeople = acm.idPeople AND people.idPeople = pcm.idPeople
И это должно вернуть всех связанных людей из одного фильма.
Хотелось бы получить некоторую информацию обо всем дизайне, так как я довольно новичок в разработке всей базы данных (впервые на самом деле) и подойдет ли этот дизайн, если мне нужно будет увеличить до 5000 фильмов (текущий цель компании). Эта база данных также послужит бэкэндом сайта.
Спасибо.
ОБНОВЛЕНИЕ: Временно разработано грязное решение с использованием PHP-переменных и шаблонного SQL-запроса. Похоже, что выполнение нескольких внутренних соединений не было обязательным. Спасибо за предложения, хотя.