[SQL ] 請問如何記錄按過讚的人

看板Database (資料庫)作者 (higgco)時間6年前 (2018/03/26 16:49), 6年前編輯推噓3(3012)
留言15則, 5人參與, 6年前最新討論串1/1
資料庫名稱:mysql 資料庫版本:5.7 內容/問題描述: 請問設計的相關理念 像Youtube按讚那樣 請問是在一個欄位裡面 我想的是 在一個欄位 擺滿了每個按過的人的 userid嗎? 類似一欄位 12,15,24,224,556 這樣嗎? 然後用什麼方式去跟那一個欄位互動呢? 可以在尾部增userid或刪除裡面的某個userid嗎? 還是要整個欄位取下 然後將,一個個分開 在進行篩選 沒有在裡面的話可以增(like) 有在裡面的話可以刪(dislike) 還是我這想法不對 是有其他方法可以更方便實現? 請教謝謝 Post table id picroute likeusers dislikeusers 1 img/0001.jpeg 1,3,4,6,11,44,233 2,5,8,15,66,77,88 然後進到該頁面後 用session的登入userid 去比對 likeusers有的話 就是顯示已按like的圖 和未按dislike的按鈕 dislikeusers有的話 就是顯示按dislike的圖 和未按like的圖 都不在這兩個欄位的userid就是顯示已都可以按下的狀態 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.30.127.172 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1522054181.A.024.html

03/26 22:59, 6年前 , 1F
為何要在一個欄位去存a,b,c這東西 存成table不好嗎?
03/26 22:59, 1F

03/26 23:16, 6年前 , 2F
存成一個table 那會太多table了 因為只是一個圖片 按讚就
03/26 23:16, 2F

03/26 23:17, 6年前 , 3F
要開成一個table好像不太對勁 所以你認為像FB和Youtube這
03/26 23:17, 3F

03/26 23:17, 6年前 , 4F
類的是一個文章一個影片就開一個table去記錄所有的userid?
03/26 23:17, 4F

03/26 23:17, 6年前 , 5F
這樣整個table就是 id likeuserid dislikeuserid這樣的三
03/26 23:17, 5F

03/26 23:18, 6年前 , 6F
個欄位? 有點浪費table也會因為文章數多而爆多table吧?
03/26 23:18, 6F

03/26 23:18, 6年前 , 7F
還是我理解不對 可以舉例嗎? 可能達成的方式
03/26 23:18, 7F
※ 編輯: higgco (122.116.4.129), 03/26/2018 23:23:45

03/27 11:13, 6年前 , 8F
不會多很多 table ,只會多兩個
03/27 11:13, 8F

03/27 11:14, 6年前 , 9F
Post Table {id, picroute}, Like Table {id, pt_id,
03/27 11:14, 9F

03/27 11:14, 6年前 , 10F
uid}, DisLike Table {id, pt_id, uid}
03/27 11:14, 10F

03/27 11:15, 6年前 , 11F
或是只多一個 Action Table {id, pt_id, uid, like}
03/27 11:15, 11F

03/27 11:16, 6年前 , 12F
要查的話就 join 一下就可以了
03/27 11:16, 12F

03/27 17:19, 6年前 , 13F
概念上這是一個多對多的關係, 上面這個表就是直接紀錄
03/27 17:19, 13F

03/27 17:20, 6年前 , 14F
誰跟什麼文有關係, 這樣要從人查或從文查都沒問題
03/27 17:20, 14F

04/17 02:47, 6年前 , 15F
應該只是單純的記log資訊而已,然後一直max最後一筆
04/17 02:47, 15F
文章代碼(AID): #1QkBGb0a (Database)
文章代碼(AID): #1QkBGb0a (Database)