1. ホーム
  2. sql

[解決済み】タグまたはタグ付けのための推奨SQLデータベース設計【クローズド

2022-03-26 11:40:21

質問

タグ付けを実装する方法として、タグIDとアイテムIDのマッピングテーブルを使用する(理にかなっていると思いますが、スケールが大きいでしょうか)、アイテムIDに一定数のタグIDカラムを追加する(悪い考えのようです)、カンマ区切りのテキストカラムにタグを保持する(おかしな話ですが動作するかも)、などの方法を聞いたことがあります。また、疎行列を推奨している人がいますが、その場合、タグ名はどのように優雅に成長するのでしょうか?

タグに関するベストプラクティスを私は見逃しているのでしょうか?

どのように解決するのですか?

3つのテーブル(1つはすべてのアイテムを格納するテーブル、1つはすべてのタグを格納するテーブル、1つは2つの間の関係を格納するテーブル)が適切にインデックスされ、適切なデータベースで実行されている外部キーを持つ、うまく機能し、適切にスケールするはずです。

Table: Item
Columns: ItemID, Title, Content

Table: Tag
Columns: TagID, Title

Table: ItemTag
Columns: ItemID, TagID