次のタグ付け機能をサポートするデータベースをどのように設計しますか。
- アイテムには多数のタグを付けることができます
- 特定のタグセットでタグ付けされたすべてのアイテムの検索は高速である必要があります(アイテムにはALLタグが必要であるため、OR検索ではなくAND検索です)
- アイテムの作成/書き込みは、迅速な検索/読み取りを可能にするために遅くなる可能性があります
理想的には、(少なくとも)n個の指定されたタグのセットでタグ付けされたすべてのアイテムのルックアップは、単一のSQLステートメントを使用して実行する必要があります。検索するタグの数とアイテムのタグの数は不明であり、高い可能性があるため、JOINを使用することは実用的ではありません。
何か案は?
これまでのすべての回答に感謝します。
しかし、私が間違っていなければ、与えられた答えはタグのOR検索を行う方法を示しています。(n個のタグが1つ以上あるすべてのアイテムを選択します)。効率的なAND検索を探しています。(すべてのn個のタグを持つすべてのアイテムを選択します-そしておそらくそれ以上。)