这似乎很有趣。
假设三个表 ,users
和items
一个连接表users_items
。后者将users.id
s 链接到items.id
s。当表中有一行包含对 ( , )时,我们说用户U
拥有项目。I
users_items
U.id
I.id
现在:我将如何随机选择特定用户尚未拥有的项目?
最可行的解决方案似乎是:
- 收集所有项目
id
。 - 收集
id
用户拥有的物品U
。 id
从 #1 中生成的集合中删除步骤 #2中的所有s- 从结果集中选择随机元素(微不足道)
这是唯一理智的方法吗?是最优的吗?让我们假设这将是一个被大量使用的功能。而且每个表中的元素数量巨大。
有什么有趣的想法、想法吗?