Хороший вопрос.Несмотря на упрощение, я думаю, что ваш подход оправдан, и очевидно, что вы выполнили домашнюю работу.
После того, как ваши таблицы построены и заполнены соответствующим образом, вам нужно будет выполнить операторы SQL, чтобы правильно получить то, что вы ищете.
Предположим, у вас есть три таблицы, перечисленные выше, например:
| Game | Genre | GameGenre |
|-------------|---------|-------------|
| GameID | GenreID | GameGenreID |
| Name | Genre | GameID |
| Description | | GenreID |
Вы бы "связали" их, пройдя через таблицу GameGenre, которая называется таблицей бриджа.
Так что, если вы хотите увидеть ВСЕ жанры, с которыми связана конкретная играПример кода может быть таким:
SELECT
Game.GameID,
Game.Name
GameGenre.GenreID,
Genre.Genre
FROM
Game
INNER JOIN GameGenre ON Game.GameID = GameGenre.GameID
INNER JOIN Genre ON GameGenre.GenreID = Genre.GenreID
WHERE
Game.Name = 'Metal Gear Solid'
То, что вы делаете, - это начинаете с определенной игры, а затем используете идентификатор этой игры, чтобы перейти к таблице бриджа.После того, как вы правильно присоединились к таблице бриджа, вы можете присоединиться к таблице жанра, чтобы получить там информацию.
Если вы хотите начать с жанра и просмотреть все связанные игры, вы можете просто повернуть вспятьпроцесс.Вы начинаете в жанрах и присоединяетесь к таблице бриджа, а затем из таблицы бриджа присоединяетесь к игре.Ниже приведен пример псевдокода:
SELECT
Genre.GenreID,
Genre.Genre,
Game.Name
FROM
Genre
INNER JOIN GameGenre ON Genre.GenreID = GameGenre.GenreID
INNER JOIN Game ON GameGenre.GameID = Game.GameID
WHERE
Genre.Genre = 'Espionage'
Надеюсь, это поможет!Вы определенно на правильном пути, и я думаю, что вы задаете правильные вопросы.Если вам нужно лучше понять объединения, предложите начать здесь: