これは面白そうです。
users
3つのテーブル、、items
および結合テーブルを想定しますusers_items
。後者はusers.id
sをitems.id
sにリンクします。ペア(、 )を含む行がテーブルにある場合、ユーザーU
はアイテムを所有していると言います。I
users_items
U.id
I.id
さて、特定のユーザーがまだ所有していないアイテムをランダムに選択するにはどうすればよいですか?
最も実行可能な解決策は次のようです。
- すべてのアイテムを収集します
id
。 id
ユーザーが所有するアイテムのsを収集しますU
。id
#1で生成されたセットからステップ#2のすべてのsを削除します- 結果のセットからランダムな要素を選択します(些細な)
これが唯一の正しい方法ですか?最適ですか?これが頻繁に使用される機能であると仮定しましょう。そして、各テーブルの要素の数は膨大です。
楽しいアイデア、考えはありますか?