本文介绍了APaaS产品中的数据模型(表单设计器)的作用和实现方式。通过表单模型和数据表格容器,可以实现用户友好的数据输入和验证,以及数据的存储和展示功能。
一、为什么要讲
做了近四年的SaaS产品经理,我想讲讲为什么需要APaaS,因我们公司做的是面向建筑设计领域的协同办公平台,我们的核心是围绕以项目全生命周期为主,提供涵盖项目经营管理系统(项目立项)、项目管理系统、协同设计系统(CAD)、电子出图系统、电子档案管理系统、出版管理系统。
过程中遇到以下两个问题:
- 对企业自身来讲,100家企业会有100种业务场景和流程,所以说无法通过简单的SaaS系统去进行适配,而企业一般也不可能因为系统的引进,从而去改变自身的业务流程。
- 这些企业中有些需求已经通过其它厂商解决了,会形成数据孤岛。比如考勤用钉钉、HR用薪人薪事、审批用泛微、项目管理用我们的、财务系统用金碟。
1. 实现思路
1)每个企业都有其独特的业务流程和需求,作为垂类领域SaaS平台,就需要进行面向企业场景的定制化改造。
定制化改造的核心是贴合企业的业务流程,即SOP(标准作业流程)。通过对企业的业务流程进行深入理解和分析,可以通过表单的编排和流程的编排来实现系统的构建。
这样的定制化改造可以满足企业对业务信息录入、OA系统、HR系统、工单系统等各种需求。使用APaaS(应用平台即服务),可以实现面向企业定制场景的基础系统的快速搭建APaaS提供了表单的编排和流程的编排功能,使企业能够根据自身的业务需求和流程特点,快速构建定制化的系统。
此外,APaaS还提供了分析看板和权限管控等功能,进一步增强了系统的灵活性和可定制性。
2)设计原则是:各大模块可独立存在,也可以组装在一起使用。
支持API和excel从各大平台直接接入至平台。市场角度来说先渗透进企业内部,同时也实现数据一致性。
2. APaaS(Application Platform as a Service)开发的核心价值可以总结为以下几点
1)产出可复用模型,快速开发并提升部署效率
APaaS开发平台提供了一系列的可复用组件、模块和功能,开发人员可以通过拖拽、配置和定制的方式快速构建应用程序。
这些可复用的模型和组件可以被多个应用程序共享和重复使用,大大缩短了开发周期,提高了部署效率。
2)降低使用门槛,敏捷适应业务需求
传统的应用开发需要开发人员具备一定的编程和技术能力,而APaaS开发平台通过提供可视化的界面和简化的开发工具,降低了应用开发的技术门槛。
非专业开发人员也能够通过APaaS平台进行应用开发,快速适应和响应业务需求的变化。
3)打通数据孤岛
企业中常常存在着各种数据孤岛,数据存储在不同的系统和应用中,互相隔离且难以共享。
APaaS开发平台提供了数据集成和连接的能力,可以通过简单的配置和绑定,将不同系统和应用中的数据进行整合和共享,实现数据的打通和流动。
除了以上核心价值,APaaS开发还具备一定的灵活性和通用性。开发者可以根据自身需求自由定义前端界面组件、数据源绑定方式、数据模型、业务逻辑和工作流等,甚至可以进一步修改源码,定制符合特定业务需求的应用程序。
这种灵活性和通用性使得APaaS开发能够适应不同行业和企业的需求,提供个性化的解决方案。
总体而言,APaaS开发的核心价值在于提供快速开发、部署和适应业务需求的能力,通过产出可复用模型和打通数据孤岛,帮助企业提高效率、降低成本,并加强业务的灵活性和可持续发展能力。
二、那我们来讲讲什么是数据模型
前面提到了APaaS平台通过数据模型+角色权限+视图+流程可以快速产出可用模型。那么今天就来说说,其核心之一的数据模型。
数据模型是一种概念性的表示,用于描述现实世界中的数据、数据之间的关系以及数据的属性。它是对数据的组织、结构和语义的抽象和规范化。数据模型通常用于设计和构建数据库系统、信息系统和软件应用程序。
常见数据模型:
- 关系型数据模型(如关系数据库):使用表格和关联关系来组织数据。
- 层次数据模型:数据以树状结构组织,每个节点可以包含多个子节点。
- 面向对象数据模型:数据以对象的形式组织,包括属性和方法。
- 文档数据模型:数据以文档(如JSON、XML)的形式组织。
关系型数据模型
关系型数据模型对应的数据库自然就是关系型数据库了,这是目前应用最多的数据库。(关系型数据库如MySQL、Oracle、Microsoft SQL Server)
定义:关系型数据模型是一种基于关系(表格)的数据组织方式,其中数据以二维表格的形式存储。它通过定义表格、行和列之间的关系来表示数据。
每个表格代表一个实体,每行代表一个数据记录,而每列代表一个数据字段或属性。
关系型数据模型具有以下特性:
- 表格结构:关系型数据模型使用表格作为数据存储的基本单位。每个表格由列和行组成,列定义了数据的属性,而行表示数据的具体记录。
- 实体关系:关系型数据模型支持多个表格之间的关联关系。这些关联关系通过定义主键和外键来建立,以实现表格之间的数据关联和查询。
- 数据一致性和完整性:关系型数据模型通过定义约束条件和规则,确保数据的一致性和完整性。主键约束保证每行数据具有唯一标识,外键约束保证表格之间的关联关系正确。
- 灵活性和扩展性:关系型数据模型具有良好的灵活性和扩展性。它可以适应不同类型和结构的数据,支持添加、删除和修改表格、列和记录等操作。
- 数据独立性:关系型数据模型具有数据独立性的特性。这意味着数据的逻辑表示与物理存储相分离,可以在不影响应用程序的情况下进行物理存储结构的改变。
- 查询语言:关系型数据模型使用结构化查询语言(SQL)作为数据操作和查询的标准语言。SQL提供了丰富的查询功能,包括选择、插入、更新和删除数据的操作。
- 数据安全性:关系型数据库提供了安全性机制,如用户身份验证、访问控制和数据加密,以保护数据免受未经授权的访问和恶意操作。
- 并发控制:关系型数据库支持并发控制机制,以处理多个并发的事务。并发控制确保在多个用户同时访问和修改数据时,数据的一致性和隔离性得到保证。
这些特性使得关系型数据模型成为企业内部信息化产品中常用的数据模型,适用于许多应用场景,如数据管理系统、企业资源规划(ERP)系统、客户关系管理(CRM)系统等。
三、关系型数据模型的实现方式——数据表格
关系型数据模型使用数据表格来表示实体、属性和它们之间的关系。
1. Microsoft Excel≠数据表格
Microsoft Excel 不是像 MySQL 或 Oracle 那样的传统关系数据库管理系统 (RDBMS)。
虽然 Excel 确实具有一些类似于关系数据模型的功能,例如将数据组织到表中以及定义表之间的关系的能力,但它并不完全遵守关系数据库的原则。
Excel 主要是一种电子表格应用程序,允许用户以表格格式存储和操作数据。 它提供数据输入、计算、格式化和可视化的功能。 虽然它可以处理结构化数据并执行基本数据分析,但它缺乏关系数据库的一些关键特性,例如数据完整性约束、数据查询能力(如 SQL)以及对复杂事务的支持。
Excel 通常用于个人和小规模的数据管理任务,但它可能不适合处理大量数据或复杂的关系数据模型。 对于更高级的关系数据库需求,通常会采用专用的 RDBMS 解决方案。
2. 数据表格的构成要素
数据表格通常由以下要素构成:
- 表名(Table Name):数据表格在数据库中有一个唯一的名称,用于标识和引用该表格。
- 列(Column):数据表格由多个列组成,每一列代表一个属性或字段。列定义了数据的类型、长度以及其他约束条件。
- 行(Row):数据表格中的每一行表示一个数据记录或实体,也称为元组(Tuple)。行包含了与列相对应的实际数据值。
- 主键(Primary Key):主键是用于唯一标识每一行的一列或一组列。主键的值必须是唯一的且不为空,用于保证每一行的唯一性和检索的准确性。
- 外键(Foreign Key):外键是用于建立表格之间关系的列,它引用了其他表格的主键。外键用于确保数据表格之间的引用完整性和一致性。
- 约束条件(Constraints):约束条件定义了数据的完整性规则,用于限制数据的取值范围和关联关系。常见的约束条件包括唯一约束、非空约束、默认值约束等。
- 索引(Index):索引是一种数据结构,用于加快数据表格的检索速度。索引可以基于一个或多个列,通过预先排序和组织数据,提供更高效的数据访问。
- 其他属性和选项:数据表格还可以具有其他属性和选项,如表格注释、触发器、视图等,用于进一步管理和操作数据。
这些构成要素共同定义了数据表格的结构、数据类型、约束条件以及与其他表格之间的关系,使得数据能够被有效地存储、查询和操作。
3. 典型的数据表格例子之Mysql
传统开发模式下,开发人员会根据业务需求建表。
1)创建数据模型
Contract表格表示合同信息,包含ContractID作为主键,表示合同的唯一标识,以及其他属性如ContractName、StartDate和EndDate。
Party表格表示相关方信息,包含PartyID作为主键,表示相关方的唯一标识,以及其他属性如PartyName、Address和ContactNumber。
ContractParty表格用于建立Contract表格和Party表格之间的关系,它包含了ContractID和PartyID作为外键,分别与Contract表格和Party表格的主键关联,以及Role属性表示相关方在合同中的角色。
2)设计表
3)预览表
四、APaaS平台怎么通过可视化界面把表单设计与数据库建表工作结合起来
1. 通过容器的方式实现数据表格其在可视化界面的渲染
APaaS平台通常通过以下方式来实现数据表格容器:
- 可视化表格设计器:提供可视化的表格设计器,允许用户以图形化的方式创建和设计数据表格。用户可以通过拖放和设置属性来定义表格的列和属性。
- 数据模型定义:允许用户定义数据模型,包括表格和列的结构。用户可以定义列的数据类型、长度、约束条件等。
- 表格操作和行为:提供一系列操作和行为选项,用于对数据表格进行操作和处理。例如,用户可以定义增加、删除、修改表格记录的操作,以及表格之间的关联关系和查询操作。
- 数据绑定:支持将数据表格与其他组件或数据源进行绑定。这意味着表格可以显示和编辑与其他组件或数据源相关联的数据。用户可以指定数据源,如数据库表、API接口或其他数据服务。
- 用户界面定制:允许用户自定义表格的外观和行为。用户可以调整表格的样式、布局和交互方式,以满足特定的需求。
- 数据验证和约束:提供数据验证和约束机制,以确保数据的完整性和一致性。用户可以定义列级别和表级别的约束条件,如唯一性约束、非空约束等。
- 数据过滤和排序:支持对表格数据进行过滤和排序。用户可以定义过滤条件,以便只显示满足条件的数据。同时,用户可以指定排序规则,对表格数据进行排序。
- 数据导入和导出:提供数据导入和导出功能,以便将表格数据从外部源导入到表格中,或将表格数据导出到外部文件或数据存储中。
1)腾讯微搭
① 功能展示
在页面设计组件中,提供数据容器:
数据容器组件介绍:
- 数据列表:适用于从数据源中查询多条数据,并将返回列表循环展示的场景,如查询用户列表。
- 数据详情:适用于从数据源中查询一条数据,并将返回数据展示的场景,如查询访客预约详情。
- 表单容器:快捷实现表单数据的提交与展示场景。绑定数据源后,可根据字段类型自动生成单行输入、下拉选择、提交按钮等组件。
- 数据表格:以表格形式展示多行数据,支持对数据进行排序、搜索、分页、自定义显示内容和操作。
数据列表显示效果如下图所示:
数据详情显示效果如下图所示:
表单容器显示效果如下图所示:
数据表格显示效果如下图所示:
目前微搭已经实现根据选择的数据表,可以直接生成选择表对应的列表、创建、更新、详情页面。用户体验绝佳!
② 操作演示
创建模型应用:选择数据源(创建数据表、表字段、表关系),数据源支持跨应用共享选择。必须选择一个数据源才能走下一步。
选择完成之后,会自动生成如所下图所示几个页面,列表、创建、更新、详情。这个地方特别符合用户心智模型,点赞!!!
对于组件的解释,跟随详情跳转链接,这个细节特别好,点赞!
③ 技术实现
腾讯微搭使用 Kubernetes 作为其应用程序容器的管理和编排平台,通过利用 Kubernetes 的自动化和弹性能力,提供高效、可靠的微信小程序开发和部署环境。
2)Microsoft Power Apps
① 功能展示
- “编辑”窗体:则用户可以编辑相应字段、创建记录,以及将所做的更改保存到数据源。
- “显示”窗体:则用户可以显示某个记录的所有字段,或者只显示您指定的字段。
② 操作演示
选择“编辑”窗体:
关联了数据源的表单,不支持删除:
这个细节特别好,值得点赞!!!
③ 技术实现
在 Microsoft Power Apps 中,应用程序的运行和托管是在 Microsoft Azure 云平台上进行的。Azure 提供了一系列的托管服务和平台功能,用于运行和扩展 Power Apps 应用程序。
Microsoft Azure 平台本身支持容器化应用程序的部署和管理,并提供了 Azure Kubernetes Service(AKS)作为托管 Kubernetes 服务。这使得开发人员可以在 Azure 上部署和管理基于Kubernetes 的应用程序。
但这与 Microsoft Power Apps 平台本身的功能和架构是分开的,Power Apps 并不直接使用 Kubernetes 作为其容器管理解决方案。
2. 怎么做
有两种开发方式:
- 表单驱动。在表单驱动的开发方式中,应用的核心是表单。开发者通过定义和配置表单来构建应用的用户界面和交互逻辑。表单中包含了输入字段、验证规则、布局等信息,用于收集用户输入的数据并进行处理。表单驱动的开发方式更加关注用户界面和交互逻辑的设计,开发者需要根据具体的业务需求来创建和配置表单,定义数据的输入、展示和验证方式。
- 模型驱动。在模型驱动的开发方式中,应用的核心是数据模型。开发者通过定义和配置数据模型,包括实体、属性、关联关系等,来构建应用的数据结构和业务逻辑。应用的用户界面和功能是基于数据模型自动生成的,开发者可以通过配置数据模型的属性、视图、操作等来定义用户界面和交互逻辑。模型驱动的开发方式强调数据驱动的应用开发,开发者主要关注数据模型的设计和配置,而较少关注具体的界面设计和编码。
腾讯微搭和Microsoft Power Apps都是都采用了表单驱动和模型驱动相结合的开发模式来实现表单设计器
腾讯微搭,它结合了表单驱动和模型驱动的特点。在微搭中,可以通过简单的表单配置来创建用户界面和交互逻辑,快速构建数据录入和展示界面。
同时,微搭也支持通过数据模型的定义和配置来实现更复杂的业务逻辑和数据关联。开发者可以根据具体的需求选择合适的方式进行开发,灵活地使用表单驱动和模型驱动。
Microsoft Power Apps,它同样采用了表单驱动和模型驱动的混合模式。在Power Apps中,可以通过拖拽和配置表单控件来创建用户界面,并通过设置控件的属性和事件来定义交互逻辑。
此外,Power Apps还提供了数据模型的支持,开发者可以定义实体、属性和关联关系,并使用公式和规则来实现数据的处理和业务逻辑。通过表单驱动和模型驱动的结合,Power Apps提供了更灵活、细粒度的开发方式。
核心设计思路:
- 数据源绑定。将数据源绑定逻辑从表格组件中分离出来。这可以通过创建一个数据服务或数据层的模块来实现。该模块负责与数据源进行通信,获取数据,并将数据传递给表格组件进行显示。这样,表格组件只需要专注于展示数据和用户交互,而不需要处理数据获取的细节。
- 容器和内容分离。将表格组件放置在一个独立的容器组件中。容器组件负责管理表格的布局和样式,并提供必要的交互功能,如排序、筛选等。表格组件则负责渲染和展示数据,并处理用户交互事件。通过将容器和内容分离,可以实现更好的模块化和组件重用性。
1)数据表格搭建
实现思路:
- 准备数据:首先,准备需要展示的数据。数据可以来自数据库、API接口、本地文件或其他数据源。确保数据的结构和格式与表格组件所期望的一致。
- 选择表格组件:根据需求和技术栈,选择适合的表格组件或库来渲染数据表格。
- 绑定数据:将准备好的数据绑定到表格组件中。
- 设置表格属性:根据需要,配置表格的属性和样式。可以设置列的名称、数据类型、排序方式、筛选选项、分页设置等。此外,你还可以自定义表格的样式、颜色和布局。
- 处理交互和事件:根据需要处理表格的交互和事件。例如,你可以添加点击表头排序、选中行、编辑数据、删除数据等功能。通过监听表格组件的事件或使用相应的API方法,来实现这些交互和操作。
- 渲染表格:在可视化页面中使用相应的代码将表格组件渲染出来。这通常涉及在HTML文件中插入表格组件的标记,并在适当的位置使用JavaScript代码将其实例化和渲染。
① 腾讯微搭
功能展示
数据源:腾讯云微搭低代码的数据源提供了数据集合本身的存储以及操纵数据的各种方法,本质上是一系列操作数据的方法集合。低码平台提供了数据源管理功能,可以创建、管理多个数据源。
数据源类型及功能概览:
操作演示
新建数据模型(创建表):
设计表字段属性:
通用选项集(合同状态、合同类型),通用选项集管理就是枚举值的管理:
表与表是怎么关联的,例如下图所示:为合同相关字段,提供数据类型:关联关系,关联模型选择对应的表“相关方”,关联类型选择:“1:1”,“N:1”的关系。
以及删除“相关方”时,对应的“合同”数据不删除就是当“合同”与“相关方”有关联数据时,“相关方”不允许被两个选项。这一点微搭考虑很到位。
数据源管理
在对应数据模型后面,提供了对该数据的管理入口。
② Microsoft Power Apps
功能展示
数据源的类型:数据源可连接到云服务,或者,可以位于应用本地。
连接的数据源:最常见的数据源是可用于检索和存储信息的表。 可以利用到数据源的连接,采用 Microsoft Excel 工作簿、使用 Microsoft Lists 创建的列表、SharePoint 库、SQL 表和许多其他格式来读取和写入数据,并将这些数据存储在 OneDrive for Business、DropBox 和 SQL Server 等云服务中。
除表以外的其他数据源包括电子邮件、日历、Twitter 和通知,但本文并不介绍其他这些类型的数据源。
操作演示
创建应用,创建表,设计表:
使用“显示”窗体容器,关联对应数据源:
数据管理,可以添加修改数据:
2)表单模型搭建
表单模型是指在应用程序或系统中用于收集和处理用户输入数据的结构化数据模型。它定义了表单中的字段、验证规则、默认值和其他相关属性。
表单模型的构成要素,表单模型的构成要素包括以下几个方面:
- 表单字段(Form Fields):表单字段是表单模型的核心要素,用于收集用户输入的数据。每个表单字段代表一个特定的数据项,例如文本输入框、下拉列表、单选按钮、复选框等。每个字段具有唯一的标识符和相关的属性,如字段类型、验证规则、默认值等。
- 标签(Labels):标签用于描述表单字段的用途或含义,提供给用户一个可见的文本标识,帮助他们理解字段的目的。标签通常显示在字段前面或上方。
- 输入控件(Input Controls):输入控件是用户与表单字段进行交互的界面元素。根据字段的类型,输入控件可以是文本输入框、下拉列表、单选按钮组、复选框等。输入控件允许用户输入、选择或修改数据。
- 默认值(Default Values):某些字段可以设置默认值,作为初始值或推荐值。默认值可以预先填充字段,减少用户的输入工作量,同时提供了一些合理的选项。
- 验证规则(Validation Rules):验证规则定义了对用户输入数据进行验证的规则和条件。验证规则用于确保输入数据的合法性和完整性,可以包括必填字段、数据格式、范围限制、唯一性检查等。验证规则可以提供及时的错误提示,帮助用户纠正错误并提供有效的数据。
- 提交按钮(Submit Button):提交按钮用于触发用户完成表单输入并提交数据的操作。当用户点击提交按钮时,表单数据将被发送到后端进行处理或存储。
- 取消按钮(Cancel Button):取消按钮允许用户放弃当前的表单输入操作,返回上一步或退出表单页面。
这些要素共同构成了表单模型,提供了一种结构化和用户友好的方式来收集和处理用户输入的数据。通过合理设计表单字段、标签、输入控件、验证规则等要素,可以提升用户体验、确保数据的准确性和完整性,以及满足特定应用场景的需求。
① 腾讯微搭
组件列表详见:https://cloud.tencent.com/document/product/1301/59110
② Microsoft Power Apps
组件列表详见:https://learn.microsoft.com/zh-cn/power-apps/maker/canvas-apps/add-configure-controls
五、结论
本文详细描述了APaaS产品中数据模型(表单设计器),本质来看:表单模型是一种用于收集和验证用户输入数据的模型。它定义了数据输入的结构、字段和验证规则。表单模型提供用户界面,用于展示字段和接收用户的数据输入。
通过表单模型,可以收集用户提交的数据,并进行验证以确保数据的合法性和完整性。而数据模型负责数据的结构化存储和查询,使用数据表格容器是数据模型在可视化界面的实现方式,另外还提供数据源的管理。
扮演的角色
数据表格容器用于数据的存储和展示,而表单模型用于数据的输入和验证。
数据表格容器提供了数据的结构化存储和查询功能,而表单模型提供了一种用户友好的方式来收集和验证用户输入的数据。
- 数据输入:表单模型提供用户界面,用户可以填写表单字段并提交数据。
- 数据验证:表单模型可以验证用户输入的数据,确保数据的合法性和完整性。
- 数据存储:通过数据表格容器,将表单中的数据存储到适当的表格中,以便后续的数据处理和查询。
- 数据展示:数据表格容器可以用于展示存储的数据,将数据以表格的形式呈现给用户或其他系统进行查看和分析。
本文由@高姿态 原创发布于人人都是产品经理,未经许可,禁止转载。
题图来自 Unsplash,基于CC0协议。