1. 程式人生 > >實現自定義查詢的數據庫設計及實現(一)

實現自定義查詢的數據庫設計及實現(一)

bre 名稱 審批流程 work 數據庫名 需要 自定義查詢 perm 枚舉

需求

先說一下需求:實現用戶自定義的查詢,用戶可以自定義要查詢的列、自定義條件條件、自定義排序。除了查詢使用外,還可以使用於各個需要根據條件進行約束的業務,如權限;

本設計和實現,很大部分是通過數據庫和存儲過程進行,界面只是讓用戶選擇數據列和設置條件,並把這些內容保存在數據庫中,查詢是通過存儲過程拼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語句時表別名

這三個表的數據,根據數據庫中系統表的內容進行初始化填寫。並且開發了一個界面,進行一些業務上的設置,主要是設置表中“用戶控制業務操作”的那些字段;

後續內容請看第二部分;

實現自定義查詢的數據庫設計及實現(一)