数据模型工具
变更记录
产品版本 | 更新内容 | 更新日期 |
V7.0.1 | 初始版本 | 2024年10月 |
1 简介
1.1 功能介绍
从收集到业务需求开始,分析转换为业务规则,进而转化为数据结构,最终制定具体的数据库设计。信息系统和数据库设计通常从一个很高的抽象层次开始,逐渐变得具体明确,对应的是概念模型、逻辑模型、物理模型,在苍穹平台下一步则是设计元数据模型。此次介绍的功能是用于设计数据模型的工具,定义表、字段、主键、索引和表之间关系。
1.2 名词解释
概念模型 从现实世界抽取事物、事物特征以及事物之间的联系(按用户的观点来对数据和信息建模),绘制ER图,定义实体、特征和关系。
|
|
逻辑模型 概念模型的细化,增加属性要素,定义业务规则,同样会绘制ER图,定义实体、属性、关系。
|
|
物理模型 定义数据的物理存储,包括数据的存储位置,存储文件位置和存储策略等,绘制物理模型图,定义表、字段、约束、主键、索引。 |
1.3 应用场景
企业内部需建立统一的数据库规范,涉及表名、字段数据类型、长度、精度、主键、索引,数据模型工具内置数据库规范约束。
开发过程中,开发人员可以直观可视化地查看当前数据库表结构和关系,有助于评估变更对现有数据的影响。
数据模型的变更可以进行版本控制,便于跟踪和管理迭代过程中的变更。
系统迭代过程中,业务需求实现涉及到数据库表的改动,手工写脚本存在SQL不规范、容易产生错误、脚本校验不及时等问题。基于按照规范约束后的数据模型,确保生成的升级脚本符合规范减少错误。
1.4 模型规范
模型与应用关系
一对一关系(建议):保证模型完整性,每个应用一个模型
多对一关系:模型属于应用,一个应用包含多个模型
模型定义原则
模型完整性:相近或者相关、粒度相同的数据设计为一个逻辑或者物理模型
模型分层:核心模型包含核心数据,避免修改和侵入
模型结构
云 > 应用 > 模型
模型 > 包 > 表、模型图
1.5 系统路径
开发服务云 > 模型资产管理 > 数据模型
2 主要操作
2.1 创建模型
在列表创建模型,配置以下信息。
编码 名称 描述 | 编码是数据模型的唯一标识,为了避免不同开发商的模型编码重复,会自动带上开发商标识的前缀。 注:建议按应用定义模型,模型编码与应用编码一致;尽量避免修改模型编码。 |
所属应用 应用分库 | 确保模型和应用一对一关系,每个应用一个模型,模型涉及表和应用分库相匹配,便于后续对比模型和数据库表,生成差量脚本。 |
开发商标识 | 模型归属的开发商,仅开发商可编辑模型。 |
产品 | 模型所属产品,可选择苍穹、星瀚和星空。 |
导入PDM
支持导入PowerDesigner模型
数据模型工具暂不支持跨模型引用、移动和复制(后续规划实现),建议在PowerDesigner将已有模型按应用拆分,确保应用和模型一对一的关系
PowerDesigner模型图导入后会有差异,请手工调整
2.2 设计模型
从列表进入模型设计器,仅模型开发商可编辑,模型设计器分为4个区域:
模型操作:显示模型操作,包含暂存、提交和历史版本
大纲树:显示当前模型包含的元素和结构(模型 > 包 > 表、模型图)
模型图:显示打开的模型图
属性面板:显示大纲树或模型图选中对象的属性
大纲树
显示当前模型包含的包、表和模型图
结构:模型 > 包 > 表、模型图,模型下也可新增模型图,使用包内的表
显示模型、包和模型图的名称,表的表名和名称
支持搜索名称、标识和表名
支持拖拽排序,支持拖拽表至其他包的表分组中
支持删除包、表和模型图,删除模型请前往列表
包
模型下支持新增包
模型内部功能分组,和开发平台应用内的与功能分组一致
将相关的表组织在一个包下
包之间,业务应相对独立,除基础资料外不应或极少表被其他包
表
每个包有一个表分组,包含包内所有表。表显示表名和名称,按表名字母排序。
表名 | 仅允许填写英文字母、数字和下划线,确保表名在当前模型内唯一,且符合规范: l 金蝶kingdee:t_{名称} l 其他开发商:tk_{开发商标识}_{名称} |
名称 | 表的中文名称,生成脚本时会取名称作为注释comment |
描述 | 记录表的设计思路和业务逻辑,及一些关键设计信息 |
字段
表名 | 仅允许填写英文字母、数字和下划线,确保在当前表唯一,且符合规范: l 金蝶kingdee:f{名称} l 其他开发商:fk_{开发商标识}_{名称} |
名称 | 字段的中文名称,生成脚本时会取名称作为注释comment |
描述 | 描述字段的业务语义,数据来源,关联关系等,便于理解设计 枚举类在描述中定义枚举值含义 |
数据类型 |
索引
主键
字段勾选为主键,会在主键列表中显示。
DDL
KSQL语法的建表语句
模型图
包内可以新增多个模型图,模型下也可以新增模型图,使用包内的表。
新增表
可以从大纲树拖拽已有表至模型图中,也可以在模型图上快速新增表。
新增关系连线
点击连线图标激活连线,依次点击作为起点和终点的表即可连线成功,选中连线可关联字段。
2.3 暂存提交
校验
暂存和提交都会进行校验,校验结果分为错误和警告。
存在校验错误或警告时,不影响暂存。
存在校验错误时不可提交,警告校验可忽略提交。
暂存
不同用户修改同一模型,暂存内容互相隔离。暂存内容是基于最新提交版本的差量内容,设计器显示时会合并。
提交
填写提交人和提交备注
和上个提交版本的XML对比,确认提交内容,支持拣选
和上个提交版本对比生成的差量脚本,核对没问题后点击确定。
注:差量脚本仅用于核对提交内容,不支持下载,请前往列表使用GIT提交差量脚本。
2.4 版本记录
提交生成提交版本记录
GIT提交:标识此版本已通过GIT提交至本地仓库
还原
选择1条版本记录还原,模型设计器刷新还原至该版本,自动提交,生成提交记录和版本。
对比
选择1条记录,和最新提交版本对比,最新提交版本作为当前值,所选版本作为基准值
选择2条记录对比,第1个选择的版本作为当前值,第2个选择的版本作为基准
2.5 编辑互斥
同一个模型,不允许多个用户同时编辑,同个账号打开多个页面同理。
锁定
从列表进入模型设计器时,当前用户如果可编辑,默认进入编辑态并锁定。
模型锁定时,其他用户只可查看,相同账号可强制踢出。
解锁:关闭浏览器或浏览器页签时解锁
2.6 反向工程
选择数据库和表,反向生成数据模型。数据表为空时,代表所有表。
2.7 GIT
配置
在开发平台,可以对不同应用分别配置GIT远程地址、远程分支、元数据目录、本地仓库地址,使用GIT管理元数据。数据模型和元数据一样,用的是在开发平台所属应用的GIT配置,元数据目录无需改动,自动按照模型路径规则拼接(datamodel/bos/1.5/pdm/应用编码)。
示例:
gitpull地址:http://gitlab.kingdee.com/bos-platform/bos-kddm-core.git (远程仓)
gitpush地址:http://gitlab.kingdee.com/yong_lan/bos-kddm-core.git (个人仓)
git远程分支:feature_dev (提交分支)
元数据目录:datamodel/bos/1.5/main/mdl/metadata (这里按元数据的提交目录配置,pdm的提交路径我们会自动截取转换为:datamodel/bos/1.5/pdm/mdl)
本地仓库地址:E:\git\cosmic\bos-kddm-core (路径前面(苍穹平台:E:\git\cosmic;星瀚:E:\git\constellation;星空:E:\git\galaxy)部分固定,后面的bos-kddm-core为git工程名,用以区分同一个账号拉取不同的git工程)
拉取
将远程仓库文件拉取到本地仓库,可以勾选将拉取到本地的数据模型文件更新至数据库
对应的Git命令是git pull
每次修改数据模型前应先拉取,拉取会覆盖数据库数据
提交
将选中的数据模型提交到本地仓库
提交的文件比较是与本地仓库地址进行比较
提交冲突需要手工合并,或者重新拉取重新修改数据模型再提交
避免冲突建议控制权限由业务DBA统一按迭代周期拉取和提交
推送
将本地仓库的文件推送到远程仓库
对应的Git命令就是git push
还原
将暂存区的文件或者是本地仓库的文件还原到工作区,并将本地仓库工作区数据模型更新至数据库
2.8 模型和数据库比较
根据当前模型最新提交版本的表,查找应用分库中对应的表,比较表所包含元素(字段、索引、主键)属性的差异,生成差量脚本。
2.9 GIT分支模型比较
场景:开发完成,提交至测试环境之前,可使用此功能和测试分支模型比较,生成差量脚本用于升级。
功能:选择GIT分支,自动按照模型路径规则(datamodel/bos/1.5/pdm/应用编码),拼接模型目录。点击确定,自动将该分支远程仓库的模型,拉取至分支本地仓库再进行比较,可查看比较生成的差量脚本。
数据模型工具
本文2024-09-23 00:17:10发表“云苍穹知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-cangqiong-138497.html