作者higgco (higgco)
看板Database
標題[SQL ] 請問如何記錄按過讚的人
時間Mon Mar 26 16:49:39 2018
資料庫名稱: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://webptt.com/m.aspx?n=bbs/Database/M.1522054181.A.024.html
1F:推 liisi: 為何要在一個欄位去存a,b,c這東西 存成table不好嗎? 03/26 22:59
2F:→ higgco: 存成一個table 那會太多table了 因為只是一個圖片 按讚就 03/26 23:16
3F:→ higgco: 要開成一個table好像不太對勁 所以你認為像FB和Youtube這 03/26 23:17
4F:→ higgco: 類的是一個文章一個影片就開一個table去記錄所有的userid? 03/26 23:17
5F:→ higgco: 這樣整個table就是 id likeuserid dislikeuserid這樣的三 03/26 23:17
6F:→ higgco: 個欄位? 有點浪費table也會因為文章數多而爆多table吧? 03/26 23:18
7F:→ higgco: 還是我理解不對 可以舉例嗎? 可能達成的方式 03/26 23:18
※ 編輯: higgco (122.116.4.129), 03/26/2018 23:23:45
8F:→ retsamsu: 不會多很多 table ,只會多兩個 03/27 11:13
9F:→ retsamsu: Post Table {id, picroute}, Like Table {id, pt_id, 03/27 11:14
10F:→ retsamsu: uid}, DisLike Table {id, pt_id, uid} 03/27 11:14
11F:→ retsamsu: 或是只多一個 Action Table {id, pt_id, uid, like} 03/27 11:15
12F:→ retsamsu: 要查的話就 join 一下就可以了 03/27 11:16
13F:推 LPH66: 概念上這是一個多對多的關係, 上面這個表就是直接紀錄 03/27 17:19
14F:→ LPH66: 誰跟什麼文有關係, 這樣要從人查或從文查都沒問題 03/27 17:20
15F:推 far0802: 應該只是單純的記log資訊而已,然後一直max最後一筆 04/17 02:47