mysql查询自定义数据_实现自定义查询的数据库设计及实现(一)
需求
先说一下需求:实现用户自定义的查询,用户可以自定义要查询的列、自定义条件条件、自定义排序。除了查询使用外,还可以使用于各个需要根据条件进行约束的业务,如权限;
本设计和实现,很大部分是通过数据库和存储过程进行,界面只是让用户选择数据列和设置条件,并把这些内容保存在数据库中,查询是通过存储过程拼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语句时表别名
这三个表的数据,根据数据库中系统表的内容进行初始化填写。并且开发了一个界面,进行一些业务上的设置,主要是设置表中“用户控制业务操作”的那些字段;
后续内容请看第二部分;
mysql查询自定义数据_实现自定义查询的数据库设计及实现(一)相关推荐
- mysql选中一行数据_获取table选中一行数据库
{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...
- MySql数据库主键外键与数据库设计
MySql数据库主键外键与数据库设计 首先要指出的: 列.字段.属性是一个概念 行.记录.元组是一个概念 MySQL数据库CONSTRAINT约束:非空约束,唯一约束,主键约束,外键约束 show c ...
- mysql原生查询单条数据_原生查询数据库流程
public classUserDao{/*** 查询所有,无条件 *@return */ public ListgetUsers(){//1.定义操作数据库的sql语句 String sql = & ...
- java一次查询900w数据_一次SQL查询优化原理分析(900W+数据,从17s到300ms)
有一张财务流水表,未分库分表,目前的数据量为9555695,分页查询使用到了limit,优化之前的查询耗时16 s 938 ms (execution: 16 s 831 ms, fetching: ...
- 查询当天数据_【财会人职场必备】发票勾选、查询、认证等25问!简直太全了!都收藏了!...
收藏:新系统专票勾选/查询/认证时间等25个问题 问题1-10 增值税发票综合服务平台对哪些企业开放? 答:增值税发票综合服务平台将取消增值税发票认证扩大到所有增值税一般纳税人,增值税一般纳税人取得增 ...
- mysql 查询语句超时_解决SQL查询总是 超时已过期
1.由于数据库设计问题造成SQL数据库新增数据时超时 症状: Microsoft OLE DB Provider for SQL Server 错误 '80040e31' ([ODBC SQL Ser ...
- mysql 随机选择数据_从MySQL随机选取数据
从MySQL随机选取数据最简单的办法就是使用"ORDER BY RAND()"; 方案一: SELECT * FROM `table` ORDER BY RAND() LIMIT ...
- mysql 原生 添加数据_手撸Mysql原生语句--增删改查
mysql数据库的增删改查有以下的几种的情况, 1.DDL语句 数据库定义语言: 数据库.表.视图.索引.存储过程,例如CREATE DROP ALTER SHOW 2.DML语句 数据库操纵语言: ...
- mysql binlog 大数据_后起之秀 | MySQL Binlog增量同步工具go-mysql-transfer实现详解
一. 概述 工作需要研究了下阿里开源的MySQL Binlog增量订阅消费组件canal,其功能强大.运行稳定,但是有些方面不是太符合需求,主要有如下三点: 需要自己编写客户端来消费canal解析到的 ...
最新文章
- C++/C++11中std::set用法汇总
- 从零开始学 Python 之运算符
- 【错误记录】Android Studio 中查看 Gradle 配置的方法源码 ( 配置 gradle-wrapper.properties 中版本为 gradle-x.x.x-all.zip )
- 我与Linux系统的交集
- Android之android studio如何解决‘:app:packageDebug‘.(Duplicate files copied in APK META-INF/DEPENDENCIES)
- python操作hive数据库代码_Python连接Hive操作数据库
- 头发剪短了要快速生发_怎样生发效果最好最快?四个方法快速长出头发!
- NOTEPAD大神是否鄙视一切IDE?
- Python练习:斐波那契数列计算 B
- 【BZOJ3437】小P的牧场,斜率优化DP
- Design Tradeoffs for SSD Performance
- ios12怎么滑屏解锁_iOS12.2 越狱来袭,又是一波秀
- C#语言实例源码系列-异或算法加密解密
- 直观理解线性插值(linear interpolation)和双线性插值(Bilinear interpolation)
- 第48篇 接收蓝牙数据及PHP研究 Saturday
- 二叉树(从建树、遍历到存储)Java
- 【Fiori系列】为什么SAP Fiori活的如此精致
- html5 meter样式,css – Chrome中的HTML5 Meter样式
- 媒体播放器播放的方法步骤
- Java 集合深入理解(16):HashMap 主要特点和关键方法源码解读
热门文章
- telephone 为空 唯一索引_记一次线上唯一索引失效没有起效的场景
- 如何快速上手mysql_mysql快速上手3
- channelsftp的put_JSch - Java实现的SFTP(文件上传详解篇)
- swing 显示文件下文件_Linux 文件权限详解
- android下拉弹性gif,android-pulltorefresh 下拉加载中使用gif动图
- STL-queue.back()队尾误区
- MySQL8.0.19下载安装及配置详细步骤
- widows下nignx的使用
- 通通玩blend美工(8)——动态绘制路径动画,画出个萌妹子~
- sudo: Cannot execute /usr/local/bin/zsh: No such file or directory 问题