mysql查询自定义数据_实现自定义查询的数据库设计及实现(一)
需求
先說一下需求:實現(xiàn)用戶自定義的查詢,用戶可以自定義要查詢的列、自定義條件條件、自定義排序。除了查詢使用外,還可以使用于各個需要根據(jù)條件進行約束的業(yè)務(wù),如權(quán)限;
本設(shè)計和實現(xiàn),很大部分是通過數(shù)據(jù)庫和存儲過程進行,界面只是讓用戶選擇數(shù)據(jù)列和設(shè)置條件,并把這些內(nèi)容保存在數(shù)據(jù)庫中,查詢是通過存儲過程拼SQL語句完成,并把結(jié)果集返回。
設(shè)計結(jié)構(gòu)
基礎(chǔ)登記表-->查詢設(shè)置表-->存儲過程運行
表設(shè)計
首先定義基礎(chǔ)登記表,基礎(chǔ)登記表分為三個部分:表登記、列登記、表間關(guān)系登記;
表登記的數(shù)據(jù)表包含如下字段:
字段描述
字段名
類型
說明
登記表自增長關(guān)鍵字
id_table
int
自增長
基礎(chǔ)表
tablereg_name
varchar(60)
數(shù)據(jù)庫中名稱
基礎(chǔ)表中文名
tablereg_cnname
varchar(60)
業(yè)務(wù)上顯示的名稱
關(guān)鍵字段名
prk_name
varchar(60)
關(guān)鍵字字段
關(guān)鍵字段中文名
prk_cnname
varchar(60)
關(guān)鍵字中文名稱
審核后是否可以刪除
checkdel_flag
char(1)
用戶控制業(yè)務(wù)操作
使用后是否可以刪除
useddel_flag
char(1)
用戶控制業(yè)務(wù)操作
控制操作權(quán)限
belong_type
char(1)
用戶控制業(yè)務(wù)操作
用戶可配置
config_flag
char(1)
用戶控制業(yè)務(wù)操作
業(yè)務(wù)主表標志
mainbusiness_flag
char(1)
用戶控制業(yè)務(wù)操作
是否需要審核
check_flag
char(1)
用戶控制業(yè)務(wù)操作
需要定義審批流程
checkflow_type
char(1)
用戶控制業(yè)務(wù)操作
審批流程ID
id_workflow
int
用戶控制業(yè)務(wù)操作
數(shù)據(jù)庫名稱
schema_name
varchar(100)
用戶控制業(yè)務(wù)操作
消息通知標志
message_flag
char(1)
用戶控制業(yè)務(wù)操作
是否權(quán)限控制
permission_flag
char(1)
用戶控制業(yè)務(wù)操作
列登記的數(shù)據(jù)表包含如下字段:
字段描述
字段名
類型
說明
自增長關(guān)鍵字
id_column
int
自增長關(guān)鍵字
登記表關(guān)鍵字
id_table
int
歸屬表的ID
順序號
serial_num
int
標示列的順序
字段表
column_name
varchar(60)
字段中文名
column_cnname
varchar(60)
數(shù)據(jù)類型
data_type
char(1)
1 數(shù)字;2 字符;3 時間;
原始數(shù)據(jù)類型
data_type_original
varchar(20)
記錄數(shù)據(jù)庫中的數(shù)據(jù)類型 如 int datetime 等
原始列數(shù)據(jù)類型
column_type_original
varchar(30)
是否權(quán)限控制
permission_flag
char(1)
業(yè)務(wù)使用
下拉列表ID
id_list
int
標識下拉框的數(shù)據(jù)源,可以是枚舉或是數(shù)據(jù)源
表間關(guān)系登記表
字段描述
字段名
類型
說明
登記表關(guān)系ID關(guān)鍵字
id_tabrela
int
自增長
主表
id_table
int
表的ID
關(guān)聯(lián)表
id_table_rela
int
表的ID
主表字段名
column_name
varchar(100)
主表的關(guān)鍵字
主表字段中文名
column_cnname
varchar(100)
主表的關(guān)鍵字中文名
關(guān)聯(lián)表字段
column_name_rela
varchar(100)
關(guān)聯(lián)表的關(guān)鍵字,一般是外鍵
關(guān)聯(lián)表別名
relatable_name
varchar(100)
關(guān)聯(lián)名別名,顯示用
關(guān)聯(lián)表查詢別名
tableas_name
varchar(100)
拼SQL語句時表別名
這三個表的數(shù)據(jù),根據(jù)數(shù)據(jù)庫中系統(tǒng)表的內(nèi)容進行初始化填寫。并且開發(fā)了一個界面,進行一些業(yè)務(wù)上的設(shè)置,主要是設(shè)置表中“用戶控制業(yè)務(wù)操作”的那些字段;
后續(xù)內(nèi)容請看第二部分;
總結(jié)
以上是生活随笔為你收集整理的mysql查询自定义数据_实现自定义查询的数据库设计及实现(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android init第三、四部分详细
- 下一篇: 实战Zabbix-Server数据库My