[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