我是从关系数据库背景来到Appengine,正在考虑如何最好地完成这项任务。
基本上我有一个对象表,想要检索一个用户从未见过的对。
在mysql中,例如最直接的可能是
SELECT *
FROM object_pairs
WHERE id NOT IN(
SELECT object_pair_id
FROM user_object_pairs
WHERE user_id = :user_id
)
理想情况下,我也希望能够从可能的结果中检索随机(或半随机)对。
任何建议表示赞赏。
由于
答案 0 :(得分:1)
没有简单的方法可以做到这一点。您建议的SQL查询将由大多数SQL数据库执行,首先构建内存中的ID列表,然后对表执行线性扫描,仅返回不在ID列表中的行。您可以在App Engine中执行相同的操作:获取用户的“查看列表”,对所有实体执行查询,并跳过他之前看到的那些实体。