1つの記事に複数のタグが割り当てられ、1つのタグに複数の記事が割り当てられる場合に、データベースのテーブル設計はどうしたらよいのでしょうか。
解決策
解決策の一つとして、テーブルを3つにする方法があります。
- 記事テーブル
- タグテーブル
- 記事とタグの関連テーブル
各テーブルのカラム構成を見ていきます。
記事テーブル
カラム構成は、記事ID と 記事情報 になります。
- 記事ID
- タイトル
- コンテンツ
- など
タグテーブル
カラム構成は、タグID と タグ情報 になります。
- タグID
- タグ名
- など
記事とタグの関連テーブル
カラム構成は、記事ID と タグID になります。
- 記事ID
- タグID
使い方1. 記事に割り当てられたタグを取得する
- 記事ID が 3 だとします。
- 記事とタグの関連テーブル から 、記事ID が 3 のタグID を抽出します。
- タグテーブルから、タグIDが一致するタグ情報を取得します。
使い方2. タグが割り当てられた記事を取得する
- タグID が 10 だとします。
- 記事とタグの関連テーブル から、タグID が 10 の記事ID を抽出します。
- 記事テーブルから、記事IDが一致する記事情報を取得します。