MySQL вопрос по хранению данных

158
18 сентября 2018, 05:40

База данных содержит информацию про фильм:

ID(int)
FilmDuration(string)
Year(int)
Description(string)
ID_Of_Folder(int)

Каждый фильм имеет жанр, но фильм может быть одновременно и боевиком, и комедией, и драмой. Как в таком случае хранить эту информацию?
У меня два варинта, какой из них более предпочтительный?
Вариант 1:
Создать такую таблицу:

ID_of_film(INT) reference
Боевик(bool)
Комедия(bool)
Драма(bool)
Ужасы(bool)
...

Вариант 2:
Для каждого жанра создать свою таблицу, которая будет хранить лишь одно значение - внешний ключ, который будет указывать на ID фильма.

Боевик
---------------------
| ID(int) reference |
---------------------
Комедия
----------------------
| ID(int) reference  |
----------------------

Или все же есть лучший подход к хранению такой информации?

Answer 1

Требуется использовать связь многие-ко-многим. У одного фильма может быть множество жанров, у одного жанра может быть множество фильмов. Для этого используется pivot таблица, по которой можно получить связь фильмов и жанров.

Пример таблиц:

films table:

ID(int)
FilmDuration(string)
Year(int)
Description(string)
ID_Of_Folder(int)

genres(жанры) table:

ID(int)
TITLE(string) - название жанра (Боевик/Драма/Комедия)

film_genre table

FILM_ID(int) - id фильма
GENRE_ID(int) - id жанра
READ ALSO
Как правильно хранить отдельный HTML шаблон?

Как правильно хранить отдельный HTML шаблон?

Нужно хранить HTML шаблоны так чтобы в определенный момент их можно было взять и подключить к странице с помощью jSМожно определять HTML прямо...

220
Сайт не видит скрипты

Сайт не видит скрипты

Всем приветВозможно, я что-то не понимаю, прошу подсказать

146
Как делаются маски для ввода номера телефона с выбором страны и т.д?

Как делаются маски для ввода номера телефона с выбором страны и т.д?

Как делаются маски для ввода номера телефона с выбором страны и тд? Есть ли какие-либо источники?

179
Нужен годный scroll spy

Нужен годный scroll spy

Нужен годный scroll spy (не бутстрап)

154