我的应用程序中有 3 个实体:user, tag, question.
这些实体之间的关系:
user可以选择tag他们感兴趣的tags 可以附加到questions
这或多或少类似于 or 中对应实体之间的stackoverflow关系quora。
现在我正在尝试添加一个名为“最新问题”的页面,我将在其中呈现一些带有访问用户感兴趣的标签的最新问题。
我怎样才能有效地实现这一点?
假设访问用户是userA。我现在能想到的一个解决方案是:
userA从某个关联表中获取所有感兴趣的标签- 对表进行
IN查询question_tag以获取相关question_id的 s - 在表格中查找
question_ids并将结果排序questiontime desc
所以这里有两个IN查询,而且由于tag某个用户的 s 数量可能很大(可能是数千),恐怕这个解决方案还不够快。
我正在考虑对多个标签进行编码并将结果放入表格的列中question,有什么好的方法可以做到这一点?