---
title: 使用智能数据库向导构建应用程序
date: 2023-03-20
categories:
  - app-development
  - database
  - development
  - low-code
tags:
  - app-development
  - databases
  - mobiletogether
  - sql
description: 使用关系型数据作为应用程序的后端可能面临一些挑战。这里介绍一种独特的解决方案，它可以让操作更快、更简单，并且更容易被各种开发者所使用。
---
Status: #blog

Tags:  #app-development #databases #mobiletogether #sql

Categories: [mobile-development](/blog/zh/category/mobile-development.md) | [database + sql](/blog/zh/category/database-sql.md) | [development](/blog/zh/category/development.md) | [low-code+no-code](/blog/zh/category/low-codeno-code.md)
# 使用智能数据库向导构建应用程序

基于数据的解决方案，例如数据库和企业应用程序，依赖于与后端数据库的连接和交互。然而，后端关系型数据库以表格形式存储数据，这些表格反映了复杂的数据关系。这为有效的数据管理和数据完整性提供了诸多优势，但同时也可能使得以新的方式访问和处理其中存储的数据变得困难。应用程序开发者仅仅为了开始工作，就需要对数据库设计原则和SQL查询语言有全面的理解。

与此不同的是，现实世界中的数据关系通常表现为父子关系，甚至是更深层次的层级结构。因此，处理层级数据，尤其是在关系可以通过树形结构进行可视化的情况下，通常会更加简单和灵活，从而加快开发速度。这种方法也更容易被没有丰富SQL专业知识的开发人员所掌握。

为了让构建连接到企业中普遍存在的后端关系型数据库的应用程序变得更加简单、快速，并让更广泛的开发者能够使用，Altova MobileTogether 采用了完全独特的方法。 它的可视化数据库向导允许开发者轻松构建一个查询，该查询返回分层数据，然后在应用程序中处理这些数据，然后轻松将数据以分层形式保存回数据库，让 MobileTogether 负责对数据进行规范化，并将数据写入相应的关联表中。 让我们来看看它是如何工作的。

![](/blog/images/mobiletogether-developer.jpg)

<!--more-->

## 处理分层数据

关系型数据库将数据组织成行和列，这些行和列共同构成一个表。数据通常分布在多个表中，数据之间的关系通过主键和外键来表示，这些键能够保证数据的唯一性，同时允许定义复杂的数据关联。虽然关系模型具有许多效率和优势，但它并不适用于某些应用场景。例如，在一个表单中同时显示来自两个表的数据，并且允许用户编辑这些数据，就需要执行两次独立的数据库查询，并且需要编写大量的SQL代码。将这些表单中的数据保存回数据库的操作更加复杂。除了耗时之外，这还需要应用程序开发者不仅具备其他技能，还需要精通SQL，这对于目前软件和应用程序开发人员的短缺问题进一步加剧了挑战。

视觉方面， [低代码开发工具，例如MobileTogether](https://www.altova.com/zh/mobiletogether) 我们的目标是尽最大努力简化开发连接到后端数据的应用程序的过程，让开发者能够专注于应用程序的界面、功能以及最重要的用户体验，而不是花费大量时间编写复杂的SQL语句。 (一个小提示：虽然本文主要关注基于数据库的应用程序，但MobileTogether也可以连接到其他格式的数据源，包括XML、JSON、HTML、SOAP和REST等。 此外，还可以轻松连接到传统的各种数据源，如Excel、EDI、文本文件等。) [MapForce Server](https://www.altova.com/zh/mapforce-server) 集成

无论数据来源如何，MobileTogether 以分层树状视图呈现后端数据，这使得开发者能够立即理解数据之间的关系，并根据需要操作各个元素——无论这些数据在后端数据库中是如何存储的——同时定义应用程序的功能和操作。

## 数据库向导：导入数据库层级结构

在MobileTogether中，当您首次连接到应用程序的数据存储时，您可以从广泛的受支持关系数据库和连接选项中进行选择。

连接向导将引导您完成整个过程。

![为应用程序连接到数据库后端](/blog/images/connect-to-database.png)

连接成功后，"添加数据源"对话框会显示可用的表格列表。这里展示的是一个相对简单的后端数据库，用于创建一个图书目录应用程序。

![为应用程序选择数据库表 ](/blog/images/add-db-tables.png)

为了选择应用程序所需的列，数据库向导中的可视化 SQL 语句构建器可以轻松地通过点击操作构建 SELECT 语句，这比手动编写 SQL 语句要快得多。选择“作者”表后，对话框最初会包含一个默认的 SQL 语句，用于选择所有列，但可以进行修改。在本例中，我们将保留所有列，但修改语句，按照“作者姓名”的字母顺序对数据进行排序。最终生成的 SQL 语句完全是通过点击操作构建的，使用了上下文相关的、交互式的工具栏按钮、组合框和下拉菜单。

![一款可视化 SQL 编辑器，用于构建能够连接后端数据库的应用程序](/blog/images/visual-sql-editor.png)

使用 MobileTogether 与数据库交互的一大优势在于，您可以一次性导入整个数据库的结构，从而激活之前定义的表之间的关系，或者通过“添加/编辑关系”对话框，即时定义新的表关系。

如果存在与主表相关的其他数据库表，您可以选择要维护关系的表。（这些关系是通过主键和外键建立的。）例如，如图所示，"Books" 表有一个名为 "AuthorID" 的外键，它将每个书籍记录与 "Authors" 表中的作者相关联。我们可以选中 "Books" 表旁边的复选框，以维护这种关系，页面源代码将生成，使得 "Books" 表作为子表，与 "Authors" 表形成层次关系。所有 "Books" 表的列将自动被选中。

![激活数据库表之间的关联关系](/blog/images/database-table-relations.png)

这使得整个数据库结构可以在“页面资源”面板中以树状结构呈现。

![在 MobileTogether 中，可以使用树状视图来操作数据库关系 ](/blog/images/database-structure-tree.png)

现在，每个栏位都可以用来构建应用程序的用户界面和功能。

最重要的是，当涉及到将用户修改的数据保存回数据库时，MobileTogether 使得这个过程变得极其简单。对于关系表中每个层级，这些层级以树状结构呈现，我们可以决定是在保存时是否替换所有表行，或者只保存所做的修改。而且，这种设置可以针对树状结构的每个层级进行不同的配置。  

![指定如何将数据保存到数据库](/blog/images/saving-db-modifications.png)

数据库向导在整个应用程序开发过程中都非常有用。例如，我们可以使用它来过滤数据，以便在应用程序设计中的各个子页面中使用。在这里，当我们定义用于查看和编辑作者信息的子页面时，我们使用可视化的方式构建了一个语句，用于过滤数据，从而选择具有当前作者ID的作者。

![筛选数据，以便在应用程序的子页面上使用](/blog/images/filtering-data.png)

无论您处理的是单个表格，还是多个相互关联的表格，数据库向导都能让您轻松定义查询，从而从数据库中检索到所需的数据。借助 MobileTogether 内置的智能功能，将数据写入数据库可以像简单地执行“保存”命令一样简单，只需指示 MobileTogether 在整个分层结构中仅保存修改后的数据。

当然，对于那些喜欢直接使用SQL命令的开发者，MobileTogether也能满足您的需求：您可以对各项操作进行精细的控制，包括事务处理、批量插入，以及直接执行任何SQL语句

![](/blog/images/sql-options.png)

## 了解更多，立即试用

要了解这些功能的实际应用，请观看我们的[应用开发教程视频](https://www.altova.com/zh/mobiletogether/demos#video-database-driven-apps)，该视频详细展示了如何从头到尾创建一个基于数据库的图书目录应用。

要开始构建一个连接到后端数据库的应用程序，您可以[下载](https://www.altova.com/zh/mobiletogether/download)免费的 MobileTogether Designer 软件。
