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

作者: higgco (higgco)   2018-03-26 16:49:39
資料庫名稱: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就是顯示已都可以按下的狀態
作者: liisi (小心一點)   2018-03-26 22:59:00
為何要在一個欄位去存a,b,c這東西 存成table不好嗎?
作者: higgco (higgco)   2018-03-26 23:16:00
存成一個table 那會太多table了 因為只是一個圖片 按讚就要開成一個table好像不太對勁 所以你認為像FB和Youtube這類的是一個文章一個影片就開一個table去記錄所有的userid?這樣整個table就是 id likeuserid dislikeuserid這樣的三個欄位? 有點浪費table也會因為文章數多而爆多table吧?還是我理解不對 可以舉例嗎? 可能達成的方式
作者: retsamsu   2018-03-27 11:13:00
不會多很多 table ,只會多兩個Post Table {id, picroute}, Like Table {id, pt_id,uid}, DisLike Table {id, pt_id, uid}或是只多一個 Action Table {id, pt_id, uid, like}要查的話就 join 一下就可以了
作者: LPH66 (-6.2598534e+18f)   2018-03-27 17:19:00
概念上這是一個多對多的關係, 上面這個表就是直接紀錄誰跟什麼文有關係, 這樣要從人查或從文查都沒問題
作者: far0802 (fruit.)   2018-04-17 02:47:00
應該只是單純的記log資訊而已,然後一直max最後一筆

Links booklink

Contact Us: admin [ a t ] ucptt.com