我正在爲客戶端應用設計一個'http api',它關於評論,情況是如果應用用戶登錄,他可以喜歡一些評論,而不像他們,但他們不會喜歡兩次或更多次,所以每當應用程序從我的'http api'獲取評論數據時,數據應該能夠告訴客戶端應用程序該評論是否已被用戶所喜歡。 好吧,我最近實施的API,但我發現它工作得不好,我的設計是:如何檢查用戶是否已經評論了
插入: 我創建節約評論一表「評論」(內容,創建時間等)一個用於應用用戶的桌子'用戶'和一個用於記錄哪個用戶喜歡哪個評論的信息的表'Like' 當用戶喜歡評論: 1時,增加表'comment'中的記錄'like_counts' 2,插入表中像設置用戶='用戶'和評論='評論'
查詢:
- 查詢從MySQL的評論列表(約20條每一頁)
- 的foreach非常評論和查詢表等,其中評論==「評論」和用戶=「用戶」
- 如果查詢結果在步驟2中存在,這意味着用戶之前喜歡評論。
的事情是當客戶端得到一個頁面,意味着我必須執行20個查詢與表「喜歡」來檢查,如果用戶收到喜歡它的意見,那將是非常糟糕的設計,我認爲。我知道我可以使用一些緩存,比如Redis,下一步,我想知道什麼是mysql方式的好方法?
在您的查詢中使用「LEFT JOIN」可在您收到評論的同時從用戶的「Like」表中獲取信息。 – Barmar
感謝您的回覆,Barmar先生,LEFT JOIN將保存我的查詢數量,這可能是最有效的工作方式,非常感謝。順便說一句,是不是在這種情況下常見的做法?^ _^ –