我是Laravel的新手,我希望在我的网站上有一个按钮
我的帖子表:
post_id | body | created_at
我喜欢这张桌子:
like_id | user_id | post_id | timestamp
问题:
1 - 如何计算Laravel中的喜欢?
2 - 我的数据库结构是否正确?
3 - 我将获得声誉(如stackoverflow),我应该将该重新发布保存在用户表中的一个字段中,还是具有不同的结构?
答案 0 :(得分:1)
我也会在post表中添加总数。如果您不添加它,则需要始终执行sum()查询,这可能会对您的数据库造成太大负担(取决于您网站上的访问次数等)。
您可以在用户表中保存信誉。你可能想要添加类似你喜欢的表格。用户肯定想知道为什么他们会获得更多的声誉。
答案 1 :(得分:1)
您可以使用count()
方法使用Laravel对结果进行计数。对于
示例计算表中的所有喜欢:
// Eloquent + Query Builder
$likes = Likes::all()->count();
// Query Builder
$likes = DB::table('likes')->count();
您可能需要查看aggregation methods Laravel offers。
您展示的两个表的结构看起来很好。需要考虑的一件事是,当用户或帖子被删除时,相应的喜欢会发生什么(ON DELETE ...
)
您可以将声誉字段放在user
表中,但更清晰
这样做是为了与外国人建立声誉的单独表格
用户ID的关键。