どのコンテンツにもタグを付けることができるデータベースを設計しており、特定のタグを持つすべてのコンテンツを選択できるようにしたいと考えています。
次の 2 つのオプションについて悩んでおり、アドバイスをいただければ幸いです。もっと良い方法があれば教えてください。
オプション A
複数の「多対多」結合テーブル。
鬼ごっこ: ID 鬼ごっこ メディア: ID 題名 ソース 作成 メディアタグ: ID media_id tag_id 論文: ID 題名 コンテンツ 作成 記事タグ: ID article_id tag_id
オプション B
「テーブル」列を使用して結合先のテーブルを識別する単一の「タグ参照」テーブル。
鬼ごっこ: ID 鬼ごっこ タグ参照: ID 行 ID tag_id テーブル メディア: ID 題名 ソース 作成 論文: ID 題名 コンテンツ 作成
メンテナンスの観点からは、オプション B が好ましいように見えますが、SQL クエリですべてのコンテンツを選択することを考えると、複数のクエリなしでは不可能だと思います。