当前位置: 首页>編程日記>正文

数据字典表设计

数据字典表设计

数据字典

1.需求

在开发中数据字典常被用于行业、省市区等下拉选业务中。

以下图为例,我们需要设计一个公共的数据字典表以适用于行业、省市区等多种类型的多级连带的下拉选业务

image-20220310104850645

2.表机构设计

idvarchar32主键
namevarchar32枚举名称
valuevarchar32枚举值
typevarchar32枚举类型
gradeint1等级(1:一级,2:二级,3:三级依次类推)
sortint11排序
pidvarchar32枚举上级id
delint10正常1删除

2.1 建表语句

SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;-- ----------------------------
-- Table structure for enum
-- ----------------------------
DROP TABLE IF EXISTS `enum`;
CREATE TABLE `enum`  (`id` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '主键',`name` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '枚举名称',`value` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '枚举值',`type` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '枚举类型',`grade` int(1) NULL DEFAULT 1 COMMENT '等级',`sort` int(11) NULL DEFAULT NULL COMMENT '排序',`pid` varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '枚举上级id',`del` int(1) NULL DEFAULT 0 COMMENT '0正常1删除',PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;SET FOREIGN_KEY_CHECKS = 1;

3.字段说明

**id:**这里其实id字段是可以选项,定义规则如:TELECOM_TRADE_TYPE对应1-xxx,MOBILE_TRADE_TYPE对应2-xxx

**name:**内容

**value和pid:**以下图为例,前面是定义了一级栏目,后面定义的是二级栏目;三级栏目以此类推,只需要将二级栏目的value值设置为对应三级栏目的pid即可。

type: 首先时便于查询,其次是可以根据不同的type定义相同value和pid

sort: 用于排序

**grade:**表示级别,如一级栏目grade=1,二级栏目grade=2,三级栏目grade=3 以此类推

**del:**逻辑删除状态 0-正常,1-删除

image-20220310105344274

image-20220310110044136

4.查询

1.下拉选查询方式

获取一级栏目

SELECT`value` AS id,`name` AS NAME 
FROM`enum`  where  `type` = 'TELECOM_TRADE_TYPE'AND grade = 1 AND del = 0 
order by sort

image-20220310124514146

查询子级栏目

在查询到一级栏目之后,前端可以获取到所有一级栏目的id,子级栏目的查询时可以作为pid进行查询,以此类推

 SELECT`value` as id,`name` as nameFROM`enum`where `type` = 'TELECOM_TRADE_TYPE'AND pid = #{pid}and del = 0order by sort

2.树状结构查询

SELECTa.VALUEAS id,a.NAME AS NAME,b.
VALUEAS id1,b.NAME AS name1 
FROM`enum` aLEFT JOIN `enum` b ON b.pid = a.`value` AND b.`del` = 0 
WHEREa.type = #{type} AND  a.`del` = 0 and a.`grade`=1 ORDER BY a.`sort`,b.`sort`

image-20220310124447614


https://www.fengoutiyan.com/post/15726.html

相关文章:

  • 在什么设计阶段建立数据字典
  • oracle数据字典表
  • sql连接数据字典表
  • 数据字典实例详解
  • 数据库表结构和数据字典什么区别
  • 数据字典表是什么
  • 字典表设计
  • 数据字典功能设计
  • 鏡像模式如何設置在哪,圖片鏡像操作
  • 什么軟件可以把圖片鏡像翻轉,C#圖片處理 解決左右鏡像相反(旋轉圖片)
  • 手機照片鏡像翻轉,C#圖像鏡像
  • 視頻鏡像翻轉軟件,python圖片鏡像翻轉_python中鏡像實現方法
  • 什么軟件可以把圖片鏡像翻轉,利用PS實現圖片的鏡像處理
  • 照片鏡像翻轉app,java實現圖片鏡像翻轉
  • 什么軟件可以把圖片鏡像翻轉,python圖片鏡像翻轉_python圖像處理之鏡像實現方法
  • matlab下載,matlab如何鏡像處理圖片,matlab實現圖像鏡像
  • 圖片鏡像翻轉,MATLAB:鏡像圖片
  • 鏡像翻轉圖片的軟件,圖像處理:實現圖片鏡像(基于python)
  • canvas可畫,JavaScript - canvas - 鏡像圖片
  • 圖片鏡像翻轉,UGUI優化:使用鏡像圖片
  • Codeforces,CodeForces 1253C
  • MySQL下載安裝,Mysql ERROR: 1253 解決方法
  • 勝利大逃亡英雄逃亡方案,HDU - 1253 勝利大逃亡 BFS
  • 大一c語言期末考試試題及答案匯總,電大計算機C語言1253,1253《C語言程序設計》電大期末精彩試題及其問題詳解
  • lu求解線性方程組,P1253 [yLOI2018] 扶蘇的問題 (線段樹)
  • c語言程序設計基礎題庫,1253號C語言程序設計試題,2016年1月試卷號1253C語言程序設計A.pdf
  • 信奧賽一本通官網,【信奧賽一本通】1253:抓住那頭牛(詳細代碼)
  • c語言程序設計1253,1253c語言程序設計a(2010年1月)
  • 勝利大逃亡英雄逃亡方案,BFS——1253 勝利大逃亡
  • 直流電壓測量模塊,IM1253B交直流電能計量模塊(艾銳達光電)
  • c語言程序設計第三版課后答案,【渝粵題庫】國家開放大學2021春1253C語言程序設計答案
  • 18轉換為二進制,1253. 將數字轉換為16進制
  • light-emitting diode,LightOJ-1253 Misere Nim
  • masterroyale魔改版,1253 Dungeon Master
  • codeformer官網中文版,codeforces.1253 B
  • c語言程序設計考研真題及答案,2020C語言程序設計1253,1253計算機科學與技術專業C語言程序設計A科目2020年09月國家開 放大學(中央廣播電視大學)
  • c語言程序設計基礎題庫,1253本科2016c語言程序設計試題,1253電大《C語言程序設計A》試題和答案200901
  • 肇事逃逸車輛無法聯系到車主怎么辦,1253尋找肇事司機