如何实现 “某人指定隐藏某一条数据,不影响其他人”?

1.有一个公共数据表,所有用户都可以查看
2.所有用户都可以选择隐藏任意一条记录,(仅那个用户)以后查询不显示该条记录,但不影响其他人
怎么实现比较好?
再使用一个表记录吗?
感谢大佬们的回答~

跃然一笑
浏览 548回答 5
5回答

慕工程0101907

 加一个隐藏的表 record_hide 字段 user record_id select * from record r left join record_hide h left join r.id != h.record_id where h.user = $user_id

慕田峪7331174

恩,id, user_id, record_id, created_at查询的时候可以left join,为null的就显示出来

MYYA

这个可以放到cache里面,做永久缓存,做成黑名单的形式user_id 作为key值 ,value 则是一个或者多个隐藏的记录ID每次展示给用户的时候 查看当前列表ID是否在黑名单,在就释放掉。也可以单独放表记录,但是cache的效率比db高的多.

沧海一幻觉

再用一张表这是肯定的总得有地方存储吧可以联表查或者查询前先将用户隐藏的记录ID查出来, where中再通过<>{id}查询

守着一只汪

加个flag字段是最方便的
打开App,查看更多内容
随时随地看视频慕课网APP