MySQL 数据库中的 SYS_DICT 和 SYS_DICT_ITEM 表
1. 简介
在 MySQL 数据库中,SYS_DICT
和 SYS_DICT_ITEM
是两个常见的表,用于存储字典数据。字典数据通常用于存储一些静态的、不经常变动的数据,如性别、国家、省份等。这些数据通常在多处使用,以提供给用户进行选择或展示。
本文将介绍如何设计和使用 SYS_DICT
和 SYS_DICT_ITEM
表,以及如何在 MySQL 数据库中进行相应的操作。
2. 表结构
2.1 SYS_DICT
表
SYS_DICT
表用于存储字典的分类信息,通常包含以下字段:
id
:字典分类ID,主键,自增长;name
:字典分类名称;code
:字典分类编码;create_time
:创建时间;update_time
:更新时间。
下面是创建 SYS_DICT
表的 SQL 语句:
CREATE TABLE `SYS_DICT` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(50) NOT NULL COMMENT '字典分类名称',
`code` VARCHAR(50) NOT NULL COMMENT '字典分类编码',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`),
UNIQUE KEY `code_index` (`code`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典分类表';
2.2 SYS_DICT_ITEM
表
SYS_DICT_ITEM
表用于存储字典项的具体信息,通常包含以下字段:
id
:字典项ID,主键,自增长;dict_id
:字典分类ID,关联SYS_DICT
表的id
字段;name
:字典项名称;value
:字典项值;sort
:字典项排序;create_time
:创建时间;update_time
:更新时间。
下面是创建 SYS_DICT_ITEM
表的 SQL 语句:
CREATE TABLE `SYS_DICT_ITEM` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`dict_id` INT(11) NOT NULL COMMENT '字典分类ID',
`name` VARCHAR(50) NOT NULL COMMENT '字典项名称',
`value` VARCHAR(50) NOT NULL COMMENT '字典项值',
`sort` INT(11) DEFAULT '0' COMMENT '字典项排序',
`create_time` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
`update_time` DATETIME ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='字典项表';
3. 类图
下面是 SYS_DICT
和 SYS_DICT_ITEM
表的类图:
classDiagram
SYS_DICT "1" *-- "0..*" SYS_DICT_ITEM : has
SYS_DICT : +id: INT
SYS_DICT : +name: VARCHAR
SYS_DICT : +code: VARCHAR
SYS_DICT : +create_time: DATETIME
SYS_DICT : +update_time: DATETIME
SYS_DICT_ITEM : +id: INT
SYS_DICT_ITEM : +dict_id: INT
SYS_DICT_ITEM : +name: VARCHAR
SYS_DICT_ITEM : +value: VARCHAR
SYS_DICT_ITEM : +sort: INT
SYS_DICT_ITEM : +create_time: DATETIME
SYS_DICT_ITEM : +update_time: DATETIME
4. 操作示例
4.1 插入字典分类数据
首先,我们需要向 SYS_DICT
表中插入一些字典分类数据。假设我们要插入一个名为 "Gender" 的字典分类,代码为 "gender"。我们可以使用以下 SQL 语句插入数据:
INSERT INTO `SYS_DICT` (`name`, `code`) VALUES ('Gender', 'gender');
4.2 插入字典项数据
接下来,我们需要向 SYS_DICT_ITEM
表中插入一些字典项数据。假设我们要插入性别的字典项数据,包括 "Male" 和 "Female"。我们可以使用以下 SQL 语句插入数据:
INSERT INTO `SYS_DICT_ITEM` (`dict_id