Есть простая база данных фильмов. У меня есть фильм, у него есть имя, описание, актеры(может быть много) и жанры(может быть много). Не знаю как лучше сделать структуру. Набросал такую структуру:
1 таблица: films
id, name, description
2 таблица: genres
id, name
3 таблица: actors
id, name
4 таблица: films_genres
film(id), genre(id)
5 таблица: films_actors
film(id), actor(id)
Правильная ли такая структура и как правильнее делать запрос на получение фильма.
Я так понимаю будет 3 запроса на получение фильма, его жанров и актеров?
А как делать запросы, если мне нужно получить много фильмов?
Подскажите пожалуйста.
Можно вообще хранить json в поле у фильма. Например, хранить актёров и жанры. Это можно делать, если не будешь делать поиск по актёрам и жанрам, а лишь нужны только для отображения.
И тогда всё сводится к одной таблице.
А так да, сначала получил фильмы, потом получил всех сразу ко всем фильмам актёров и жанров. Тогда 3 запроса.
UPD: опять же можно в любом случае хранить всё в json, а если и нужен поиск по по жанрам и актёрам, то уже искать из таблиц, которые ты создал. Это нужно если уж нужна очень быстрая выдача, когда записей уже очень много.
Например, у фейсбука есть список диалогов и всё для отображения хранится в таблице условно в Conversation и там все данные, т.е. почти нет или может вообще нет запросов в другие таблицы. Это сильно ускоряет приложение.
Поиск по фильмам и жанрам тоже планирую сделать. Тогда вариантов не остается? 3 запроса? А как быть если мне нужно получить информацию по 10 фильмам? 10*3 = 30 запросов?