簡體   English   中英

從數據庫獲取用戶喜歡的文章列表的最佳實踐是什么?

[英]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_idarticle_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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM