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