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