Skip to Content
数据处理综合使用示例

综合使用示例

本文将以一个经典的“博客网站”为例,实现发表文章、展示文章列表、查看文章详情、点赞和发送通知等功能,展示数据的查询、创建和修改操作。在此过程中,将涉及数据的各个环节:

  1. 使用数据库作为数据源
  2. 使用参数进行数据传递
  3. 使用请求行为进行数据的查询与修改

开始搭建

数据模型设计

为了实现博客网站的功能,需要设计以下数据模型:

  • post 表:用于保存博客文章,包含 titlecontentauthor_accountpublished_statusshow_atlike_count 等字段。一个账户可以发表多篇文章,因此 account 表与 post 表是一对多的关系,通过 author_account 字段进行关联。
  • notification 表:用于保存通知,包含 sender_accountreceiver_accountmessage 等字段。account 表通过 sender_accountreceiver_account 字段与 notification 表建立两次一对多关系,分别表示发送者和接收者。从整体来看,account 表与 notification 表是多对多的关系。更多关联相关的内容,请参考数据模型 - 关联

创建数据 - 发表一篇新文章

当用户想要创建一篇新文章时,我们需要将用户输入的内容存入数据库

  1. 页面设计:创建一个”写作”页面,包含标题输入框、正文的富文本编辑器等组件。
  2. 行为配置:在”添加”按钮上配置一个”添加 post”行为。
  3. 数据映射:将输入组件的值逐一映射到 post 数据表的相应字段(titlecontent 等)。author_account 字段则绑定当前用户数据中的 ID

新增博客行为配置

读取数据 - 展示文章列表

在进行数据操作时,往往需要对数据进行筛选、排序、去重等处理:

  • 过滤:通过设置一个或多个条件来筛选需要的数据。例如,要想只获取已发布的博客,可设置条件:published_status = true
  • 排序:定义数据的显示顺序。例如,按 show_at 字段降序排列,实现最新文章置顶。若字段已开启向量化存储,还可实现高级的语义相关性排序。
  • 去重:当需要不重复的数据时,可指定一个或多个字段,确保返回结果的唯一性。例如,去除 title 字段重复的数据。
  • 数据限额:控制返回记录的数量。1 表示获取单条记录,大于 1 则获取一个数组。

排序字段的顺序必须与去重一致。

在博客网站项目中,继续进行以下操作:

  1. 绑定数据源:在主页添加一个”列表”组件,将其数据源设置为 post 表。
  2. 配置查询:利用前面提到的查询配置,添加过滤条件 published_status = true,只获取已发布的文章;设置按 show_at 降序排序,让最新的文章置顶。
  3. 渲染列表:将列表项中的标题、封面图等组件绑定到当前项数据(item)的 titlecover_image 等字段上。

列表数据源配置

数据读取 - 查看单篇文章详情

展示数据传递数据使用的协同工作。

  1. 声明参数:新建”详情页”,并声明一个路径参数post_id
  2. 设置参数:在文章列表的每个列表项上配置”页面跳转”行为。在跳转时,将当前项数据的 id 赋值给 post_id,将其传递给”详情页”。
  3. 使用参数:在”详情页”中添加数据源,设置一个关键的过滤条件id 等于路径参数的 post_id。同时将数据限额设为 1
  4. 展示内容:通过这个精确的查询,详情页就能展示特定文章的所有内容了。

详情页数据源配置

更新数据 - 点赞与发送通知

此步骤演示了如何修改现有数据,并执行一连串的自动化操作。

  1. 配置点赞行为:在文章详情页的”点赞”按钮上配置一个”更新 post”行为。
    • 指定目标:设置筛选条件为 id 等于当前项数据的 id,这是至关重要的一步,确保只更新正确的记录。
    • 执行更新:将 like_count 字段的值更新为 like_count + 1
  2. 链式操作:发送通知:在点赞行为成功后,紧接着添加第二个行为——“添加 notification”,向 notification(通知)表中写入一条新数据。
  3. 使用上下文数据:通知的内容可以动态生成,例如,发送者 sender_account 是当前用户数据中的 ID,接收者 receiver_account 为当前项数据的 author_account,而消息内容 message 则由上一步的结果数据中的内容拼接生成。

点赞后消息通知配置

注意事项

  • 数据请求类型:除了普通的”查询”,Zion 还支持”订阅”,它能让数据在发生变化时自动推送到前端,非常适合用于开发实时聊天等功能。
  • 安全警告:在执行”更新”或”删除”操作时,务必仔细检查过滤条件是否精确。一个疏忽可能导致整张表的数据被错误地修改或清空。
  • 数据处理:对于返回的数组数据,可以使用 GET_ITEM公式进行处理和提取。
Last updated on