用户登录

用户评论内容可以用一个 edge 关系。RELATE user:dufu->comment->post:1 ,在 user:dufu 跟 post:1 之间建立一个 comment 关系,然后用 CONTENT 设置一下具体的内容,添加一个 id 属性,手工设置一下这条数据记录的 id,comment:1 ,然后再添加一个 content 属性,对应的值就是评论的具体内容。

SELECT * FROM comment,显示这里有一条数据项目。里面记录了一下用户的 id,内容的 id ,还有一个 content 属性,属性的值就是评论的内容。

回复

再回复一下这条评论,回复的时候,我们可以在用户跟内容之间建立一个 comment 关系,然后在这个关系里用 comment 属性记录一下回复的评论的 id。

RELATE user:libai->comment->post:1 ,再用 CONTENT 设置一下具体的内容,把 id 设置成 comment:2,再用 content 设置一下具体的评论内容。然后再添加一个 comment 属性,记录一下回复的评论的 id,这里就是 comment:1。

内容的评论数量

现在 post:1 这个内容有两条评论,查询内容的时候可以在结果里包含内容相关的评论的数量。

SELECT id, title FROM post; 在 SELECT 后面加上一个评论数量字段。用一下 count,起个名字叫 totalComments。 count 的东西,可以用一下 <-comment<-user。也就是用户评论内容这个关系。

现在结果里面会包含一个 totalComments ,它的值就是这个内容相关的评论的数量 。

内容评论列表

查询某个内容的评论列表,用一下 SELECT * FROM comment; 用 WHERE 设置一下条件,out 等于 post:1 AND comment = null。 如果 comment 等于 null,说明这是一条直接的评论,如果是评论的回复,comment 字段会记录一下被回复的那个评论的 id。

设置一下选择的字段,一个 id,然后 in AS user,再加上 content。然后再 count 一下评论的回复数量,起个名字叫 totalReplies。在 count 里用一条子查询,SELECT * FROM comment WHERE comment 等于 $parent.comment。

现在这个评论项目里会有一个 totalReplies 属性,它的值就是这个评论的回复数量。

评论与回复《 SurrealDB 多模型数据库:应用实践 》

统计

15260
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点