使用原生 AppSheet 数据库构建无代码应用

1. 准备工作

AppSheet 数据库 (ASDB) 是 AppSheet 的第一方原生数据库,用于整理和管理为 AppSheet 应用提供支持的数据。与 Google 表格、Big Query 和 Cloud SQL 等其他常用的外部数据源相比,其界面和改进后的性能可为应用开发者和最终用户提供更好的体验。AppSheet 数据库是所有 AppSheet 应用的默认数据选项。

学习内容

  • 如何使用示例数据或从 Google 表格导入的数据创建新的 AppSheet 数据库。
  • 如何在 AppSheet 数据库编辑器中自定义数据。
  • 如何从 AppSheet 数据库生成 AppSheet 应用。
  • 如何更改数据库并在 AppSheet 中重新生成表,以适应表结构变化。

构建内容

此 Codelab 会向您介绍如何生成和自定义新的 AppSheet 数据库,其中首先使用 AppSheet 数据库提供的默认数据,然后基于 Google 表格中的现有数据生成。然后介绍如何通过 AppSheet 数据库生成新的 AppSheet 应用。最后,本文介绍了如何在数据库编辑器中更改数据库表,然后在 AppSheet 应用编辑器中重新生成该表。

所需条件

2. 从头开始创建和自定义新的 AppSheet 数据库

首先,您需要使用默认的起始数据库,从头开始创建新的 AppSheet 数据库并对其进行自定义。这样,您就可以尝试数据库编辑器,而不会破坏 Codelab 中的后续步骤。

  1. 前往 AppSheet (appsheet.com) 首页,然后点击创建 > 数据库 > 新建数据库

从头开始创建新数据库

  1. 系统会创建一个新的示例数据库,并显示 AppSheet 数据库编辑器。

AppSheet 数据库编辑器中新示例数据库的图片。

  1. 通过将数据库名称从未命名数据库更改为 Tasks DB 来自定义数据库。(双击默认标题 Untitled database,即可修改数据库名称)。
  2. 表 1 的表名称更改为 Tasks。(双击该标签页即可进行修改)。
  3. 将第一列从 Title 更改为 Task
  4. 点击左上角的 + 添加新记录。

关于如何通过点击左上角的“+”来添加新记录的图片

  1. 双击状态列,查看枚举类型和下拉菜单项类型的使用方式。

“状态”列的属性编辑器。类型:“Enum”和“Item Type”:“Dropdown”

  1. 可选:点击 = 符号后面的按钮以为每个下拉菜单选项着色。

使用颜色选择器为下拉菜单选项着色。

  1. 可选:通过为 Status 枚举(点击 Add option)添加新选项以及新颜色进行进一步实验。
  2. 可选:尝试使用不同的列类型(例如颜色进度是/否电话),然后观察他们的行为

ASDB 中所有受支持的数据类型的上下文菜单。

您可以随意对数据库编辑器进行实验。在后续步骤中,您将创建一个新的数据库。

3. 通过从 Google 表格导入来创建和自定义新数据库

接下来的步骤展示了如何从 Google 表格导入数据。

通过 Google 表格创建数据库

  1. 首先,复制此公开的 Google 表格,并将其重命名为 ASDB: IO Codelab

请注意,它有两个标签页:TasksOwners

  1. 和之前一样,转到 AppSheet (appsheet.com) 首页,然后点击创建 > 数据库 > 从 Google 表格导入

通过 Google 表格导入功能创建数据库

  1. 在 Google 云端硬盘文件选择器中,选择工作表 ASDB: IO Codelab 的副本或您为其命名的任何内容。

系统随即会根据 Google 表格中的数据生成一个新的 AppSheet 数据库。

在数据库编辑器中,从表格生成的 AppSheet 数据库的屏幕截图。

添加对 Tasks 表格的引用

接下来,在 Tasks 表格中添加对“所有者”表的引用。

  1. 在 AppSheet 数据库的“任务”表格中,双击所有者列,修改其设置。
  2. 将类型从文本更改为参考文件 > 参考文件

选择参考文件类型

  1. 要引用的表设置为所有者,然后点击保存

用于设置“类型:引用”和“要引用的表:所有者”的对话框

  1. 系统会显示有关更改列类型的警告。在这种情况下,此列中的数据与新列类型兼容,因此您可以点击以继续操作。

更改列类型“是/否”对话框。

  1. 然后,AppSheet 数据库会尝试将 Owners 表中的相应行与 Tasks 表中的名称进行匹配。由于此数据集匹配,因此 AppSheet 数据库应该在 Owner 列中填充正确的 Owners 行引用。

ASDB 编辑器中的任务表,显示正确的“所有者”列值。

  1. 要测试引用,请点击“所有者”单元格,并将其更新为其他所有者,例如 Sarah

通过参考提供的弹出式窗口选择另一个所有者。

选择后,新值 (Sarah) 会显示在“所有者”单元格(位于“任务”表格中)中。

选择其他所有者后,所有者名称(即 Sarah)会显示在 Tasks 表格的“所有者”列中。

更改所引用表的“标签”列

AppSheet 数据库允许您为任何表选择标签列。这样一来,您就可以指定要显示在父表中的列。此政策也控制关联的 AppSheet 前端应用的父级表格中显示的内容。因此,您可以改为在“任务”表格中显示“所有者”表格中的名称列(如前所述),而不应显示“所有者”表格中的电子邮件地址列。

  1. 为此,请将所有者表格中的“标签”列更改为电子邮件,方法是将鼠标悬停在电子邮件的右侧列标题,然后点击垂直省略号

此图片显示了列标题右侧的垂直省略号。

此操作会调用列的上下文菜单。

该列的上下文菜单,选中了“将列用作标签”。

  1. 从上下文菜单中选择使用列作为标签,以将“列标签”设置为“电子邮件”列。

通过电子邮件发送列标题,并在标题列的左上角添加列标签标记。

  1. 要查看“电子邮件”列已被选作引用“任务”表格的列标签,请点击任务表格标签页,您会发现“所有者”列现在显示电子邮件地址。您可能需要刷新浏览器才能看到更新后的“所有者”列。

Tasks 表格的“所有者”列显示电子邮件地址,因为被引荐的“所有者”表格的“电子邮件”列已设置为列标签。

4. 从 AppSheet 数据库生成 AppSheet 应用

完成数据库自定义后,您可以直接从数据库生成 AppSheet 应用。如果您希望使用自定义前端界面,需要添加自动化功能或安全过滤器等,此方法会非常有用。为此,请执行以下操作:

  1. 点击 ASDB 编辑器右侧的 Apps(应用)。

AppSheet 数据库编辑器的屏幕截图,其中突出显示了右侧的“应用”按钮。

这会调用右侧的上下文菜单以生成新的应用。

与之前一样的屏幕截图,但包含“New AppSheet app”按钮的对话框。

  1. 点击 New AppSheet app 以生成新的应用。

生成的 AppSheet 应用的屏幕截图。

在应用生成时,请注意,该应用存在警告:

Column "Owner" in Tasks_Schema has a reference to an unknown table or slice "Owners". Open the column definition to select a source table.

这是因为生成的应用只有“Tasks”表,并且其“所有者”列引用了未知表“所有者”。

如需解决此问题,请将 Owners 表添加到 AppSheet 应用中。

  1. 在 AppSheet 编辑器的数据页面中,点击 +

数据页面,其中突出显示了“+”图标。

  1. 添加数据上下文菜单中,选择 AppSheet 数据库作为数据源。

添加数据上下文菜单。

  1. 然后,选择 ASDB:IO Codelab 数据库(或您在之前的步骤中为数据库命名的任何内容)。

选择数据库菜单选项。

  1. 在随后的对话框中,选中默认的全选复选框,然后点击添加到应用

对话框,用于选择要添加到 AppSheet 应用的 Owners 表。

将 Owners 表添加到应用后,不再显示“应用”错误。

没有“引用”错误的 AppSheet 应用的屏幕截图。

  1. 在添加了新的 Owners AppSheet 表后,您可以创建一个新的视图来显示此数据,方法是点击 AppSheet 中的视图页面,然后点击主要导航旁边的 +

“视图”页面,其中突出显示了“+”图标。

  1. 添加新视图对话框中,点击创建新视图

“添加新视图”对话框。

  1. 创建新视图后,请设置以下选项:

视图名称:所有者;对于此数据:所有者;视图类型:deck

查看“所有者”视图的修改页面。

恭喜,您的应用现已大功告成!

  1. 要测试任务和所有者之间的引用,请在移动预览中点击所有者视图或任务视图,然后选择一条记录以查看相关(参考)记录。

AppSheet 应用的屏幕截图,突出显示了右侧的移动设备预览。

例如,您可以点击所有者视图,然后点击某个记录以展开细目,以查看相关的任务记录。

显示如何选择一个所有者并展开细目查看相关任务的图片。

5. 更改数据库并重新生成 Tasks 表格

现在,您已经创建了 AppSheet 数据库,并基于该数据库生成新的应用,接下来请尝试更改数据库中的表。更改列数据类型并观察关联的 AppSheet 应用中会发生的情况。

  1. 在数据库的 Tasks 表中,将 Due Date 列的类型更改为 Date and time > Date

在 ASDB 编辑器中将任务表的“截止日期”类型更改为“日期”。

请注意,当您返回到 AppSheet 应用时,它会检测到数据库已更新并显示警告:

App Schema for table 'Tasks' is out of sync with the schema in AppSheet database. Please regenerate the table structure

AppSheet 的编辑器可检测数据库中的架构更改并提供警告。

  1. 如需重新生成,请点击右上角的 d1a956498c05d75f.png 重新生成图标。
  2. 这会触发一个警告对话框:

重新生成警告对话框。

  1. 点击重新生成以继续。这会将应用中的截止日期列类型更新为 Date 类型,并在 Task 的 Edit 表单中启用日期选择器输入元素记录。

AppSheet 应用修改表单,显示了 DatePicker 输入元素。

6. 恭喜

您已完成 AppSheet 数据库 (ASDB) Codelab!

深入阅读