0

ここにはシナリオがあります。私は映画、本、TV_SHOWSのようなテーブルを持っています。これらのテーブルはすべて多くのジャンルを持つことができ、どんなジャンルのテーブルでも複数のファイルを多数持つことができます。だから私が直面している問題は次のとおりです:複数の多数のジャンルのジャンル

このシナリオでは、ムービー、TV_SHOWS、およびブックテーブルをカテゴリとして参照しています。

テーブルごとに1つ、MOVIES GENRE、BOOKS GENRE、およびTV_SHOWS GENREテーブルを作成しますか?または、GenreID IN THE GENREテーブルの一意性を犠牲にすることなく、多対多のスタイル関係ですべてのテーブルを単一のGENREテーブルにリンクする方法がありますか?

今私はこれに触れる他の質問をすべて辿り着いた。明らかに、多くの(多くの)多くの関係のこのスタイルに対応できるデータベースはありません。しかし、私はこれに何か別のものがあるかどうかを調べようとしているのですか、それとも複数のGENREテーブルを作るべきですか?

私が考えることができるのは、各カテゴリテーブルに外国のGenreID列を持つことだけです。次に、カテゴリテーブルのそれぞれについてGENREテーブルと多対多の関係を持つ。すべてのカテゴリテーブルは、CATEGORY_GENREという結合テーブルを使用してリンクされます。このテーブルには、すべてのカテゴリテーブルの外部キーGenreIDカラムとGENREテーブルのGenreIDプライマリキーから作成された複合プライマリキーがあります。この問題の唯一の問題は、多対多の関係の片側を外部キーとリンクできるとは考えていないことです。関係の両側をプライマリのものにリンクする必要があります。カテゴリテーブルは一対多の関係の多くの側にあったが、残念ながら、時には映画や書籍等、ファンタジー、サイエンスフィクション、残念ながら

のような複数のジャンルを持っている場合は、この全体のことは容易になるだろう

私はこれを行う唯一の方法は複数のGENREテーブルを作ることだと思うが、先に進む前にいくつかの意見が必要だ。

+1

あなたは、あなたの例でください何を意味するのかカテゴリ説明できますか? –

+0

@BobSalmon私の編集をご覧ください。カテゴリは、ムービー、TV_SHOWS、ブックブックです。 – Christopher

答えて

1

あなたは、「メディア」(bookstv_showsmovies)あなたの様々なとあなたのgenresテーブルの間、具体的結合テーブルポリモーフィックな関連を、使用することを検討すべきです。このmedia_genresの結合表には、genre_idmedia_id、さらにはmedia_type(「book」、「tv_show」、「movie」など)の両方を記述する必要があります。ここで

は、いくつかの代替的なアプローチです:https://stackoverflow.com/a/441111/3390061

+0

これはすばらしいリンクnathanallenです。私は私が使用したキーワードでこの投稿を見つけられなかったので、これは非常に感謝しています。私はすべてのヌルを許可する各カテゴリテーブルの列を持つ1つのジャンルテーブルでアプローチを試してみると思います。少なくとも1つの列には外部キーが必要です。 – Christopher

関連する問題