如果不在表之间建立关系,为应用程序设计数据库很少是完整的。AppMaster 数据库编辑器允许你在一个简单的动作中建立这种关系。你只需要在表之间画一条连接线,然后选择关系的类型(一对一,一对多,多对多),如果有必要,还可以选择字段的名称。但是,如果表必须指代自己呢?

让我们来分析一下,当有必要保持一定的记录日志时的情况。同时,它的组织方式是,记录的创建严格按照链条进行。每条记录都必须与之前和之后的记录相联系(当然,除了最开始和最后的记录)。因此,整个链条可以跟踪每个单独的记录,并且系统得到额外的保护,以防止未经授权的更改。

数据库设计

首先,我们需要在数据库设计器中创建模型本身。让我们把它命名为 Journal并添加一个文本字段。 record.

下一步是创建一个连接。要做到这一点,右击画布上的任何地方并选择 Create relation.

下一步是设置连接。要做到这一点,你需要选择与之相同的模型作为 SourceTarget(在这个例子中,Journal ),设置字段名(nextprevious ),以及连接类型(has_one )。

自引用表的设置就完成了。你可以开始创建前端设计和业务流程。

创建业务流程

让我们创建一个后端业务流程,向日记本添加新条目。它将接收新条目的文本作为一个输入参数。这将在数据库中搜索最新的条目,以便将其与新条目联系起来。对于搜索,你可以设置 _Limit = 1(因为只需要最后一条记录),这就足够了,因为默认情况下,记录将按ID排序,并按照它们被添加到数据库的顺序发布,从最后一条记录开始。

搜索的结果将是一个由一个元素组成的数组。我们需要使用 Array Element块将其提取出来,用 index 0并形成一个新的日志条目(Make Journal).最后一步是向数据库写入(DB: Create Journal)并完成该业务流程。

这个业务流程可用于创建新数据库记录的默认端点。

前端设计

对于Web应用程序的前端,只需在页面上添加三个元素即可。

  1. 用于输入新条目内容的文本字段
  2. 添加条目的按钮
  3. 显示所有条目的表格。

对于"ADD Journal Record" 按钮,你还需要创建一个简单的业务流程。在点击按钮时,输入字段的文本应该被发送到终端,以创建新的记录,而另一个按钮要被点击,以更新表的内容作为最后一个动作。

对于表本身,也值得设置业务流程,但在本课中,我们将不纠缠于此。所有必要的信息都可以在关于设置表的课程中找到。唯一值得注意的是,在获取数据时,你需要指定 _with参数来获取相关表的数据(尽管在我们的例子中,表是与自己相关的)。

我们可以发布应用程序,添加一些条目,并验证一切工作是否正常。每个条目确实与同一表中的条目相关。例如,对于一个ID为3的条目,有一个与前一个条目(ID为2)和下一个条目(ID为4)的链接。

Was this article helpful?

AppMaster.io 101 速成班

10 模块
2 周数

不知道从哪里开始?通过我们的初学者速成课程,从A到Z探索AppMaster。

开始课程
Development it’s so easy with AppMaster!

需要更多帮助?

在我们专家的帮助下解决任何问题。节省时间并专注于构建您的应用程序。

headphones

联系支持

告诉我们您的问题,我们会为您找到解决方案。

message

社区聊天

在我们的聊天中与其他用户讨论问题。

加入社区