2011-11-27 45 views
0

我正在使用MySQL爲我的用戶添加「喜歡」我網站(Wordpress)內容的能力。我已經通過創建自己的表,然後爲每個類似於內容ID和用戶ID的記錄添加了一個插件。Mysql效率場景

爲每個用戶關聯的所有喜歡的內容ID添加一列到用戶表中,併爲每個喜歡每段內容的每個用戶ID添加一列到內容表中是否更高效?我會根據是顯示用戶的收藏夾列表或一段內容的喜歡數量來進行不同的查詢。

我是新來的MySQL所以任何建議,將不勝感激:)

回答

3

難道是更有效的一列,而不是添加到用戶表的所有內容喜歡的ID與每個用戶相關聯,併爲內容表中的每個用戶ID添加一列,這些用戶ID喜歡每段內容?

恐怕沒有,
你可以有一個職位有很多用戶喜歡,
或用戶已經喜歡過很多帖子,
你可能會超過列長度很快

最常見的做法使用單獨的表來存儲的關係: -

user_id, post_id, add_date 

生成兩個索引(USER_ID,add_date)和(POST_ID,add_date)。
通過簡單的指標,
你可以得到的職位清單按add_date遞減喜歡的用戶爲了容易,
或反之亦然,讓用戶的列表中add_date遞減

喜歡上了一個職務序列如果你想列出最喜歡的帖子,那麼可以考慮(post_id,user_id)上的索引

+0

完美的,謝謝你的徹底答案! – jetlej