[英]What's the best practice of getting a user's list of article likes from a database?
我正在研究CMS類型結構。 我已經到了幾乎一切都准備就緒的地步,除了我一直在思考的小事情。
因此,讓我們假設有一個用戶表和一個文章表。 現在,當然,如果有人“喜歡”一篇文章,則用戶ID將存儲在文章表的一列中。 像這樣的東西11241,12412,12312
。 (這些是隨機的用戶ID)
現在假設還有一個用戶的個人資料頁面,我想遍歷用戶喜歡的帖子並在其中顯示。
現在,我考慮了兩種方法。
第一種方法是將用戶喜歡的商品ID存儲在用戶所在行的表中,我們從中獲取該商品ID, 但這似乎效率不高。 因為如果用戶喜歡很多文章,那么數據庫列中的空間會用完嗎?
第二種方法是瀏覽每篇文章,並查看用戶的ID是否存在於文章保存的喜歡者列表中。 但是,IMO,這種方法的確很慢並且是一種非常不好的做法。
那么,最佳實踐是什么?
創建一個包含兩列的表: user_id
和article_id
。 當用戶“喜歡”文章時,請在此表中插入一行。 然后,當您想查看用戶#123喜歡的文章時,可以發出如下查詢:
SELECT `article_id` FROM `article_user` WHERE `user_id` = '123';
如果您需要文章數據,只需加入article_id
列就很容易了:
SELECT `article`.*
FROM `article`
LEFT JOIN `article_user` ON `article`.`id` = `article_user`.`article_id`
WHERE `article_user`.`user_id` = '123';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.