Skip to content

团队标准工程搭建实践(三)

里程碑一

  • 1、搭建两个工程:低代码操作系统工程(生产者)、运行时工程(生产物,基于 qiankun);
    • 生产者:数据源管理、模型管理及设置、代码生成及保存(build N 个文件)。【工具作用(脚手架)/ 快速生成 / 深度】
    • 生产物:qiankun、主体页面(路由访问)。【宽度】
  • 2、DEMO 部署:

一、目标

通过工厂工程生成低代码平台。

二、关键词阐述

以学生成绩管理系统为例。

1、数据源

在学生成绩管理系统中,数据源可以是学校的学生信息系统数据库,包括学生信息、课程信息、教师信息等。数据源管理涉及配置连接到学生信息系统数据库的信息,包括数据库地址、用户名、密码等。

2、模型

在学生成绩管理系统中,模型管理用于定义系统中的数据模型,包括学生、课程、成绩等实体对象以及它们之间的关系。例如,可以定义学生实体对象包含姓名、年龄、性别等字段,课程实体对象包含课程名称、学分、教师等字段,成绩实体对象包含学生、课程、成绩等字段。

3、数据表

在低代码平台中,数据表的概念可以被视为模型的一部分,模型是对数据结构和关系的抽象描述,而数据表则是模型在关系型数据库中的具体实现。

在学生成绩管理系统这样的低代码平台中,可以使用数据表来存储学生信息、课程信息、成绩信息等数据。这些数据表可以通过模型管理功能在低代码平台上进行创建、修改和管理,而无需直接编写数据库的建表语句。

例如,可以创建一个名为"学生信息"的模型,其中包含姓名、学号、性别等字段,对应于学生信息表的结构;又或者创建一个名为"成绩信息"的模型,包含学号、课程名称、成绩等字段,对应于成绩信息表的结构。

通过低代码平台提供的模型管理功能,用户可以轻松创建这些数据模型,并定义它们之间的关系,如学生和成绩之间的关联。一旦模型被定义和配置完成,低代码平台会自动生成对应的数据表结构,并提供用户界面来对数据进行增删改查操作。

这样,低代码平台将数据表的概念与模型管理功能相结合,使得用户可以通过简单的操作创建和管理复杂的数据结构,而无需深入了解数据库技术。

4、实体对象

在学生成绩管理系统中,实体对象是指系统中的核心数据对象,代表了学校的各种实体,如学生、课程、成绩等。每个实体对象都包含一组字段,用于描述和记录该实体对象的属性和特征。

5、字段

字段是实体对象的属性或特征,用于存储和表示实体对象的数据。在学生成绩管理系统中,学生实体对象的字段可以包括学号、姓名、性别等,课程实体对象的字段可以包括课程名称、学分、教师等,成绩实体对象的字段可以包括学生、课程、成绩等。

6、模版

在学生成绩管理系统中,模板是指用于创建和展示特定类型数据的通用格式或样式。模板可以包含固定的布局、结构和样式,以及用于填充数据的占位符或变量。

在学生成绩管理系统中,可能会有多种类型的数据需要进行展示,例如学生信息、课程信息、成绩信息等。针对每种类型的数据,都可以定义相应的模板来展示这些数据。

三、关键词之间的关系

1、数据表 & 模型

数据表和模型之间是一种对应关系,模型是对数据表的抽象描述,而数据表是模型在数据库中的具体实现。通过模型管理功能,用户可以轻松地创建和管理模型,从而间接地管理和操作数据表,实现对数据的高效管理和利用。

在数据表和模型的关系中,通常是一对多的关系。

具体来说,一个模型 通常对应着 多个数据表,而一个数据表则对应着一个模型。这意味着在数据库中,一个模型的定义可能会映射到多个数据表的结构,每个数据表都存储着该模型的不同部分或关联数据。

例如,一个包含学生和课程信息的模型可能会映射为两个数据表:一个存储学生信息,另一个存储课程信息。在这种情况下,学生和课程之间的关系是一对多的关系,因为一个学生可能对应着多个课程,但一个课程通常只对应着一个学生。

因此,通常情况下,数据表和模型之间是一对多的关系,其中一个模型对应着多个数据表,而一个数据表对应着一个模型。

2、实体对象 & 模型

实体对象和模型之间的关系可以理解为模型是对实体对象的抽象和定义。

在软件开发中,模型通常是对领域内某个特定概念的抽象描述,它定义了该概念所包含的属性和行为。而实体对象则是这个模型在实际应用中的具体实例,它是模型的具体化。

以学生成绩管理系统为例,可以这样理解实体对象和模型之间的关系:

  • 模型(Model): 模型定义了学生成绩管理系统中涉及的各种数据对象,如学生、课程、成绩等,以及它们之间的关系。模型包括了这些实体对象的属性、行为和约束规则,描述了它们在系统中的结构和行为。
  • 实体对象(Entity Object): 实体对象是模型在系统中的具体实例化,它是模型的实际应用。例如,学生成绩管理系统中的学生实体对象就是模型中学生概念的具体表现,包含了学生的姓名、学号、性别等属性信息。

总体而言,模型是对实体对象的抽象和定义,它定义了系统中的数据结构、属性和行为,而实体对象则是这些抽象的具体实例,实际承载了系统中的数据和业务逻辑。模型为实体对象的设计和使用提供了统一的规范和约束,使得系统的开发和维护更加规范和高效。

3、数据源 & 数据表

数据源和数据表之间的关系是一种层次关系。

在低代码平台中,数据源和数据表的关系是这样的:

数据源包含多个数据表: 一个数据源可以包含多个数据表,每个数据表存储着不同类型或不同主题的数据。例如,一个关系型数据库可以包含多张数据表,每张表存储着特定实体或对象的数据。

数据表属于特定的数据源: 每个数据表都属于特定的数据源,数据表通过数据源来进行管理和访问。在低代码平台中,用户可以通过连接到数据源来访问其中的数据表,并对数据表进行操作,如查询、新增、修改和删除等。

总的来说,数据源提供了数据的存储和获取能力,而数据表是存储在数据源中的具体数据组织形式,两者之间构成了数据的来源和结构。

四、Q & A

问题(1)

如果我建立多个模型,多个模型对应多个数据表,那么一个数据表是不是可以理解成能对应多个模型?

通常情况下,一个数据表对应一个模型,因为数据表的结构和字段通常被设计为满足特定模型的需求。但在某些情况下,一个数据表可能会对应多个模型,这取决于具体的数据设计和业务需求。

举例来说,假设有两个模型:学生信息和教师信息,它们都包含姓名、性别和年龄等字段。在某些情况下,可以将这些共同的字段放在一个数据表中,称为"人员信息表"。这样,"人员信息表"就同时对应着学生信息模型和教师信息模型,实现了一个数据表对应多个模型的情况。

这种情况下,一个数据表能对应多个模型,通常是因为这些模型之间有着相似的数据结构和字段,因此可以共享同一个数据表来存储这些共同的数据。但需要注意的是,这种做法可能会增加数据表的复杂度,并且需要更多的数据处理和管理工作,因此在设计时需要权衡利弊。

问题(2)

逻辑上是先有表?还是先有模型?

在软件开发过程中,通常是先有模型再有数据表的。模型是对数据结构和关系的抽象描述,是根据业务需求和数据逻辑进行设计的,而数据表则是模型在数据库中的具体实现。

一般的开发流程是先根据需求设计模型,确定需要哪些实体对象、它们的属性以及它们之间的关系。然后根据模型设计创建数据库表结构,选择合适的数据类型、字段约束等来实现模型的定义。

因此,逻辑上是先有模型,再有数据表。模型定义了数据的逻辑结构和关系,而数据表是根据模型设计的具体实现,用来存储和管理数据。

五、具体步骤

1)生成 DEMO 工程

关键词

【运行时:1 + N】、基于 qiankun、N 来源于 template 模版、拓展宽度

【运行时】架子(具体产品)。(消费者)

  • 工程结构
    • A:1 个路由文件
      • 路由文件包含 N 个路由地址,每个路由地址对应一个菜单(或者页面)
      • 一个页面包含 N 个相关项:样式、规则、模版、接口
    • B:??
    • 参考:低代码平台(高达)、微信小程序...
  • 接口约定
  • 规范(优先级不高)

2)脚手架生成低代码平台

【低代码】工厂:生产架子。(生产者)

  • 工程
    • 基于 VUE3、Element Plus、TS 等
  • 数据源
  • template 模版: 加工
    • 前端
    • 后端
  • build 生产 N 个文件