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