# 字典管理功能需求说明

字典管理功能用于平台管理系统数量可能变动的枚举类型数据，如支付方式，仪表类型等。对于不会改变的枚举类型数据建议放到代码中统一管理，如性别。

原型地址：[字典管理原型](https://pro.modao.cc/app/e6901721256b50fa80884755fcf42250e875e733)

## 名词定义

| 名称   | 定义                                                                                            |
| ---- | --------------------------------------------------------------------------------------------- |
| 字典类型 | 字典的分类，以便按类型管理同一类的字典，如支付方式，仪表类型                                                                |
| 类型别名 | 便于程序使用ASCII字符进行查询的字典类型的英文别名（英文字母加下划线），如支付方式对应为pay_type。要求字典类型和其别名是一致的，__即不允许不同的类型使用相同的类型别名__。 |
| 键名   | 字典键名，对应字典的key名称，使用英文字母（可使用下划线）                                                                |
| 键值   | 字典名称，对应字典的value                                                                               |

## 表单定义

![添加字典](image/add_dic.jpg)

| 字段名称 | 字段类型   | 备注                        | 是否必填 |
| ---- | ------ | ------------------------- | ---- |
| 字典类型 | String | 字典所属分类名称，不允许输入空格，回车等无意义字符 | 是    |
| 类型别名 | String | 字典类型的英文别名，仅可输入英文字符和下划线    | 是    |
| 键值   | String | 字典的value                  | 是    |
| 键名   | String | 字典的key，仅可输入英文字符和下划线       | 是    |
| 备注   | String | 本条字典的说明                   | 否    |

## 业务说明

* 重复性约束：字典类型和类型别名需要一致，即不同名的字典类型，类型别名也要不同。同名的字典类型类型别名必须相同。

* 唯一性约束：同一个字典类型下不允许有重名的键值或键名。

* 交互方式：由于字典类型和字典存储在同一张表中，未防止重复创建字典类型，输入字典类型名称后自动匹配已有的类型别名，且如果匹配上了不允许再修改类型别名。

* 批量新增字典：为简化操作，新增允许一次添加多个字典（属于同一个类型）。

* 编辑字典：编辑字典不允许编辑字典类型和类型别名，可编辑键名，键值和备注。编辑时，如键名和键值发生改变需要检查唯一性。


