需求
先说一下需求:实现用户自定义的查询,用户可以自定义要查询的列、自定义条件条件、自定义排序。除了查询使用外,还可以使用于各个需要根据条件进行约束的业务,如权限;
本设计和实现,很大部分是通过数据库和存储过程进行,界面只是让用户选择数据列和设置条件,并把这些内容保存在数据库中,查询是通过存储过程拼SQL语句完成,并把结果集返回。
设计结构
基础登记表-->查询设置表-->存储过程运行
表设计
首先定义基础登记表,基础登记表分为三个部分:表登记、列登记、表间关系登记;
表登记的数据表包含如下字段:
字段描述
字段名
类型
说明
登记表自增长关键字
id_table
int
自增长
基础表
tablereg_name
varchar(60)
数据库中名称
基础表中文名
tablereg_cnname
varchar(60)
业务上显示的名称
关键字段名
prk_name
varchar(60)
关键字字段
关键字段中文名
prk_cnname
varchar(60)
关键字中文名称
审核后是否可以删除
checkdel_flag
char(1)
用户控制业务操作
使用后是否可以删除
useddel_flag
char(1)
用户控制业务操作
控制操作权限
belong_type
char(1)
用户控制业务操作
用户可配置
config_flag
char(1)
用户控制业务操作
业务主表标志
mainbusiness_flag
char(1)
用户控制业务操作
是否需要审核
check_flag
char(1)
用户控制业务操作
需要定义审批流程
checkflow_type
char(1)
用户控制业务操作
审批流程ID
id_workflow
int
用户控制业务操作
数据库名称
schema_name
varchar(100)
用户控制业务操作
消息通知标志
message_flag
char(1)
用户控制业务操作
是否权限控制
permission_flag
char(1)
用户控制业务操作
列登记的数据表包含如下字段:
字段描述
字段名
类型
说明
自增长关键字
id_column
int
自增长关键字
登记表关键字
id_table
int
归属表的ID
顺序号
serial_num
int
标示列的顺序
字段表
column_name
varchar(60)
字段中文名
column_cnname
varchar(60)
数据类型
data_type
char(1)
1 数字;2 字符;3 时间;
原始数据类型
data_type_original
varchar(20)
记录数据库中的数据类型 如 int datetime 等
原始列数据类型
column_type_original
varchar(30)
是否权限控制
permission_flag
char(1)
业务使用
下拉列表ID
id_list
int
标识下拉框的数据源,可以是枚举或是数据源
表间关系登记表
字段描述
字段名
类型
说明
登记表关系ID关键字
id_tabrela
int
自增长
主表
id_table
int
表的ID
关联表
id_table_rela
int
表的ID
主表字段名
column_name
varchar(100)
主表的关键字
主表字段中文名
column_cnname
varchar(100)
主表的关键字中文名
关联表字段
column_name_rela
varchar(100)
关联表的关键字,一般是外键
关联表别名
relatable_name
varchar(100)
关联名别名,显示用
关联表查询别名
tableas_name
varchar(100)
拼SQL语句时表别名
这三个表的数据,根据数据库中系统表的内容进行初始化填写。并且开发了一个界面,进行一些业务上的设置,主要是设置表中“用户控制业务操作”的那些字段;
后续内容请看第二部分;