拉一页的动态,假如 20 条数据出来。每条动态上需要点亮是否关注、收藏、点赞这些状态。请问应该怎么去设计数据库比较合理?
我目前是在关系型数据库中通过下面的方式实现的,但是感觉性能上有缺陷。 如果用 nosql 的方式,又存在点赞人数非常多比如极端几十万个用户点赞,这种问题。 麻烦大佬指点一下!
//关注状态
if($needFollow){
$in = trim(implode(',', array_unique($uid_follow)),',');
$res = $this->query("SELECT `uid_follower` FROM relationship WHERE uid_follower in (".$in.")");
foreach ($res as $v){
$ufArr[$v['uid_follower']] = 1;
}
}
//点赞状态
$in = trim(implode(',', array_unique($feedid_uid)),',');
$res = $this->query("SELECT `feedid_liker` FROM feed_like WHERE feedid_liker in (".$in.")");
foreach ($res as $v){
$fuArr[$v['feedid_liker']] = 1;
}
//收藏状态
$in = trim(implode(',', array_unique($feedid_uid)),',');
$res = $this->query("SELECT `feedid_uid` FROM collect WHERE feedid_uid in (".$in.")");
foreach ($res as $v){
$cfuArr[$v['feedid_uid']] = 1;
}
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.