肖锰:浪潮GS开发平台学习札记(三)——规范介绍
1、元数据命名规范
为了在不同的应用环境下更好的识别和管理元数据,我们制定了元数据开头命名规范,所有的元数据,应该以“开头+模块名称_实际含义”相结合的方式。
在填写编号和名称时,其开头应遵守以下规则。
元数据 |
编号开头 |
名称开头 |
举例 |
数据对象 |
DO_ |
编号:与表名一致! 名称:DO_网上报销_部门字典 |
|
数据模型 |
DM_ |
DM_ |
编号:DM_WSBX_LSBMZD 名称:DM_网上报销_部门字典 |
帮助 |
Help_ |
Help_ |
编号:Help_WSBX_BMZD 名称:Help_网上报销_部门帮助 |
表单定义 |
FRM_ |
FRM_ |
编号:FRM_WSBX_CLFBXD 名称:FRM_网上报销_差旅费报销单 |
状态机 |
SM_ |
SM_ |
编号:SM_WSBX_CLF 名称:SM_网上报销_差旅费 |
构件 |
CMP_ |
CMP_ |
编号:CMP_WSBX_CLFBXD 名称:CMP_网上报销_差旅费报销单 |
报表定义 |
PRT_ |
PRT_ |
编号:PRT_WSBX_CLFBXD 名称:PRT_网上报销_差旅费报销单 |
工作流定义 |
WF_ |
WF_ |
编号:WF_WSBX_BXLC 名称:WF_网上报销_报销流程 |
数据映射 |
Maping_ |
Maping_ |
|
值映射 |
VM_ |
VM_ |
|
数据交换 |
DX_ |
DX_ |
|
解决方案 |
Solution_ |
Solution_ |
编号:Solution_WSBX 名称:Solution_网上报销 |
对于模块名称的命名规范,其编号和名称的命名规范应遵守前置规范中的大小写规范和缩写规范。对于公司级别的产品开发,模块名称应符合公司研发管理部们的命名管理规范,并在申请和审核后确定。
对于元数据命名中的实际含义部分,顾名思义,应该体现出对应元数据的实际意义,通过名称即可看出此元数据的用途描述和简要服务内容。实际含义部分应该以英文为主,符合Pascal命名规范,对于带有复杂业务的元数据名称,也可以在统一规范后,采用拼音简写的方式。
2、数据库设计规范
使用平台开发时对数据库结构设计有一些强制的约定或规范,如下:
1、每个实体表都必须要定义主键,类型为varchar(36)
(1)ADP平台开发过程中,每张具体的数据表的内码系统默认采用Guid的生成方式,因此要求在数据库表结构设计时,每张表都必须定义一个主键,类型定义为varchar(36);从数据库设计本身角度而言,也要求每个实体表要有一个主键。
(2)对于既有系统里已有的表,如果用的是复合主键或者复合唯一索引,也要求必须增加主键字段。
(3)外键关联的字段,也需要定义为varchar(36)。
(4)对于一些表示关联关系的表,如果只是在写构件时用sql或者存储过程直接操作,不会被用来创建数据对象、数据模型或帮助,则可以不用加GUID形式的主键。
2、支持分级树的表结构设计
(1)对于分级树状结构的功能,ADP实现时,强制约定由分级码(每一级长度4位字符)、级数(整型)、是否明细(char(1))来存储和构建树的层次结构,因此数据库设计时分级树结构的表必须要包含这三个字段。
(2)分级码默认9级,类型为varchar(36),如果有更多的级数,设计时可以根据实际情况增加字段类型的长度。
(3)GSP5.5版本后,也支持根据ParentID(varchar(36))来构建树,建议即使使用ParentID,也冗余设计上分级码、级数、是否明细字段,在写sql进行查找时用分级码比较方便。
3、支持数据增量的表结构设计
(1)单据和主要的字典,最好都要加上创建人(varchar(36))、最后修改人(varchar(36))、创建时间戳(datetime)、最后修改时间戳字段(datetime)。
4、支持审批流程的表结构设计
(1)需要挂流程的表单,数据库中该表单对应的表应增加两个字段:审批状态(字符类型,长度自定,可以char(1),也可以char(2))和流程实例(varchar(36))。
5、枚举值和布尔型相关的表结构设计
(1)表单上使用checkbox呈现的字段,数据库设计时应设置成char(1)类型,定义模型时将该字段定义成Boolean类型,而不能定义为int类型。
(2)表单上使用枚举值呈现的字段,数据库设计时应设置成char型或者varchar型,而不能定义成decimal或numeric类型。
6、其他约定
(1)数据库设计时,表名和字段名不允许为数据库中的关键字。
(2)表名不允许使用后面带List的关键字结尾(如表名DepartList是不允许的)。
(3)数据库表中,字段名不能使用“表名_ID”。例如:部门表表名为Department,其表中字段不能命名为Department_ID。也不允许仅大小写不同(即类似于Department_id的也是不允许的)。(注意:改规则不只适用于主键命名,所有字段命名都应该遵循)
(4)ADP数据对象元数据提供基于表和视图的结构描述,其中表分为普通表和带年度表两种实表策略,对于视图和带年度表的数据对象,在数据对象设计器中不允许直接与数据库同步。
7、关于建表sql的建议
建议开发过程中,对于数据表的创建与传统开发方式一致,采用手工整理建表SQL和升级sql的方式,而不是直接用数据对象同步数据库的方式。原因是:
(1)ADP平台提供的数据对象仅是对数据表、视图结构的描述,并且数据对象的描述字段可以与数据库实际表的个数、类型(不违反数据库自身的规则)等不一致,另外对索引、触发器等属性数据对象均不提供。
(2)用数据对象同步数据库方式,不方便形成升级sql,支持升级。
肖锰:浪潮GS开发平台学习札记(三)——规范介绍相关推荐
- 肖锰:浪潮GS开发平台学习札记(五)——数据对象和数据模型的建立
在上节中建立了001用户,我们使用001登录系统,登录后的界面大体如下图所示. 我们点到[专业开发平台],找到[集成开发平台],这就是浪潮GS中的重头戏--GSP Studio. 首先我们建立一个新的 ...
- 肖锰:浪潮GS开发平台学习札记(五)——数据对象和数据模型
名词解释: 数据对象:是描述数据存储信息的元数据.如表.视图.主键. 数据模型:是描述业务对象的数据结构.数据约束以及数据访问的元数据. 数据模型由主对象.子对象.字段和关联等组成. 在上节中建立了0 ...
- 肖锰:浪潮GS开发平台学习札记(四)——认识客户端及用户配置
我们接下来认识一下GS客户端,登录界面在前讲中已经提到过: 我们使用9999超级管理员进行登录,需要注意的是,超级管理员不具备[业务流程]功能,它只具备分配权限.点击[确定]我们登录到系统内部,即可看 ...
- 肖锰:浪潮GS开发平台学习札记(一)——服务器端安装
需要准备的环境及软件:Windows XP\2003\2008\7.SQL SERVER 2008.IIS.这里建议不把XP系统当做服务器使用,IIS必需,版本不限. 由于是适用版本,我们这里选择[浪 ...
- 肖锰:浪潮GS开发平台学习札记(二)——服务器端安装补充及客户端下载安装配置
服务器端安装出现的问题汇总: 1. XP下无法启动COM+组件,原因:用户权限不够. 2. 卸载中间件时有可能出现服务无法卸载的情况(体现在重新安装时提示卸载服务) 3. XP下IIS的问题(没 ...
- MapGIS IGServer开发平台学习版安装文档
MapGIS IGServer开发平台学习版安装文档 准备工作:下载 第一部分:添加例外端口 第一步:打开防火墙 开始-->运行-->输入firewall.cpl-->确定 或者 开 ...
- CRAB快速开发平台学习教程《一》:环境搭建篇
智能时代,软硬更新,实在太快.从最开始的只有少量外设资源的8051,到现在资源丰富性能超群的ARM,才经历短短十几二十年功夫.软件的功能也越来越多,代码量也越来越庞大,简易而快速开发的方式,貌似离我们 ...
- 区块链学习札记三: “链”是什么?
区块链学习札记三 :"链"是什么? 区块链的存储是一种链式存储,区块按照生成的时间顺序前后链接,区块的链接基于区块存储内容的哈希值构建.区块生成后会在区块链系统的各个节点(个人或组 ...
- JEPF软件快速开发平台学习心得之请假单功能的完成(一)
首先我也是点一次接触这个软件快速开发平台,我在学习这个平台的同时简单记录下我对这个平台是如何一步步熟悉或者是上手的,也有简单的一点总结和学习心得,希望对你们有用,同时也可以让我对知识点更快速的查缺补漏 ...
最新文章
- linux下压缩并分割稀疏文件
- C++一天一个程序(三)
- [html] 如何构建“弱网络环境”友好的项目?
- 论文浅尝 | 在生成式多跳机器阅读任务中引入外部常识知识
- 两个摄像头合成一路_教你把一个摄像机添加到两台录像机
- 使用java理解程序逻辑 第十二章_Java多线程中锁的理解与使用(二)
- 编写易于调试的vc代码
- androidannotations 在android studio中的使用
- iOS 应用内付费(IAP)开发步骤
- java解析marc乱码_国际C语言乱码大赛(IOCCC)的一个经典作品
- 安卓10刷Magisk并安装JustTrustMe
- 人脸识别主要算法原理
- mysql 一张表连两次_MySQL查询两次和双表联查哪个效率高
- CoreDNS篇7-性能压测
- Java连接MySQL8.0以上版本
- 一加ace竞速版和一加9rt哪个值得买 两者配置对比
- 移动端html尺寸,移动端页面的三种尺寸
- 面向对象的五大原则是什么
- Halcon复习专题-镜头/匹配/标定/边缘/拟合/缺陷检测/
- 安卓学习底层开发学习方法?