我的申請有3個實體:user
,tag
,question
。如何有效查詢「最新問題」?
這些實體之間的關係:
user
可以選擇tag
就是他們有興趣tag
s時,可以附接至question
小號
這是或多或少等的關係在stackoverflow
或quora
的相應實體之間。
現在我想添加一個名爲「最新問題」頁面,在其中我要去渲染標籤的訪問用戶感興趣的一些最新問題。
我怎樣纔能有效地實現這一點?
比方說,訪問用戶是userA
。 我現在能想到的解決方法是:
- 獲取所有標籤
userA
有興趣從一些關聯表 - 沒有做防
question_tag
表的IN
查詢來獲取相關question_id
小號 - 查找
question_id
S IN一個question
表,並命令由time desc
結果因此有兩個IN
查詢在這裏,並且由於某個用戶的數量可能相當大(可能是數千),恐怕這個解決方案不夠快。
我想編碼多個標籤,並將結果放在question
表的列中,有什麼好的方法可以做到這一點?
如果你有一個時間戳索引,選擇按時間戳排序的頂部將是非常快的。 – Patashu