[請益]如何設計 facebook , g+ 按讚或者+1的功能

看板PHP作者 (smile_ting)時間12年前 (2013/03/24 14:22), 編輯推噓1(109)
留言10則, 4人參與, 最新討論串1/3 (看更多)
有個問題想與各位前輩討論, 我們都知道 facebook 有 按"讚"的功能。 如果把一篇文章當做一個 table 中的item 。 姑且稱之 Post item . 該Post item 可能包含許多欄位 owner_id , content , date , ... 那麼如果要實作按讚功能, 就需要新增一筆 like 欄位 到 Post Table 如果有user C 針對該篇文章 "按讚" 該 Post item 的 like 欄位 , 就會被 update , 並且增加 點讚人的user_id ? 比如說原本該POST 按讚人數 已經有兩人 "A,B" 則ABC按下去之後 先讀取 users = "A,B" 接下來 users+=","+current_user_id 將 "A,B,C" 回存 感覺上似乎有一點沒效率。 但是直覺上的想法大概就是這樣,不曉得前輩是否有更聰明的想法? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 119.77.136.156

03/24 14:56, , 1F
我會選擇在開一個表 post_item uesr_id is_like
03/24 14:56, 1F

03/24 14:57, , 2F
這樣設計會變成只要有一個人按讚其他人都會跟著變讚或者
03/24 14:57, 2F

03/24 14:58, , 3F
別人按讚自己的紀錄會被 update 掉吧
03/24 14:58, 3F

03/24 15:04, , 4F
再開個表 原本表只記按讚數
03/24 15:04, 4F
※ 編輯: tao2tw 來自: 119.77.136.156 (03/24 15:22)

03/24 15:32, , 5F
我會用一樓的作法
03/24 15:32, 5F

03/24 16:00, , 6F
這樣只在一個方向勉強算有效率 反過來就超級沒效率
03/24 16:00, 6F

03/24 16:01, , 7F
你想一下(1)我現在又按一次讚,怎麼避免我重覆。
03/24 16:01, 7F

03/24 16:01, , 8F
(2)我現在要收回讚,怎麼把我收回。
03/24 16:01, 8F

03/24 16:02, , 9F
(3)我現在想知道我按過哪些讚(FB界面沒提供,但是API有)
03/24 16:02, 9F

03/24 16:02, , 10F
要怎麼辦。你想一下在你設計中怎麼快速處理這三個功能。
03/24 16:02, 10F
文章代碼(AID): #1HJfkTLn (PHP)
文章代碼(AID): #1HJfkTLn (PHP)