做字典管理
This commit is contained in:
@@ -0,0 +1,112 @@
|
||||
-- =============================================================
|
||||
-- 数据字典 —— 平台端 / 租户端各一套
|
||||
--
|
||||
-- 表清单:
|
||||
-- yz_platform_dict 平台端「字典列表」(字典类型)
|
||||
-- yz_platform_dict_item 平台端「字典项」
|
||||
-- yz_backend_dict 租户端「字典列表」(按 tenant_id 租户隔离)
|
||||
-- yz_backend_dict_item 租户端「字典项」
|
||||
--
|
||||
-- 设计说明:
|
||||
-- 1. 平台端字典与租户端字典完全独立:平台端字典供平台系统自身使用
|
||||
-- (不按租户隔离);租户端字典是每个租户可自行维护的业务选项
|
||||
-- (如供应商类型、结算方式),按 tenant_id 隔离,与
|
||||
-- yz_backend_erp_supplier 的隔离方式保持一致。
|
||||
-- 2. 字典项通过 dict_id 关联字典;租户端额外冗余 tenant_id,
|
||||
-- 便于不带 JOIN 直接按租户过滤,写入时须与父字典 tenant_id 一致。
|
||||
-- 3. tag_type 对应前端 el-tag 的 type(primary/success/warning/danger/info),
|
||||
-- 留空表示该项在列表里不渲染彩色标签。
|
||||
-- 4. 与 yz_backend_erp_* / yz_backend_crm_* 等表一致,这里只建普通索引、
|
||||
-- 不建唯一索引:一是软删除(delete_time)后编码仍会占用唯一键,
|
||||
-- 二是库中既有表也普遍不用唯一索引。dict_code / item_value 的唯一性
|
||||
-- 由后端接口在写入时校验。
|
||||
-- 5. 不显式指定 COLLATE,沿用库默认排序规则,避免 JOIN 时报
|
||||
-- Illegal mix of collations。
|
||||
--
|
||||
-- 执行方式:人工在数据库执行,代码中不做任何自动建表 / 补列。
|
||||
-- 说明:下方 DDL 幂等(IF NOT EXISTS),可重复执行。
|
||||
-- =============================================================
|
||||
|
||||
SET NAMES utf8mb4;
|
||||
|
||||
|
||||
-- =============================================================
|
||||
-- 平台端
|
||||
-- =============================================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `yz_platform_dict` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`dict_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '字典名称,如:供应商类型',
|
||||
`dict_code` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '字典编码(业务唯一标识,后端按此取字典),如:supplier_type',
|
||||
`remark` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`sort` INT NOT NULL DEFAULT 0 COMMENT '排序,数字越小越靠前',
|
||||
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:1 启用 0 停用',
|
||||
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人用户ID',
|
||||
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`delete_time` DATETIME DEFAULT NULL COMMENT '删除时间(软删除)',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_dict_code` (`dict_code`),
|
||||
KEY `idx_status_sort` (`status`, `sort`, `id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台端-数据字典(字典列表)';
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `yz_platform_dict_item` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`dict_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '所属字典ID(yz_platform_dict.id)',
|
||||
`item_label` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '字典项名称(显示文案),如:原材料供应商',
|
||||
`item_value` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '字典项值(业务入库值),如:1',
|
||||
`tag_type` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '标签色(el-tag type):primary/success/warning/danger/info,留空不渲染标签',
|
||||
`sort` INT NOT NULL DEFAULT 0 COMMENT '排序,数字越小越靠前',
|
||||
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:1 启用 0 停用',
|
||||
`is_default` TINYINT NOT NULL DEFAULT 0 COMMENT '是否默认选中:0 否 1 是',
|
||||
`remark` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`delete_time` DATETIME DEFAULT NULL COMMENT '删除时间(软删除)',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_dict_sort` (`dict_id`, `sort`, `id`),
|
||||
KEY `idx_dict_value` (`dict_id`, `item_value`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='平台端-字典项';
|
||||
|
||||
|
||||
-- =============================================================
|
||||
-- 租户端(按 tenant_id 隔离)
|
||||
-- =============================================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `yz_backend_dict` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '租户ID(同 yz_backend_erp_supplier.tenant_id)',
|
||||
`dict_name` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '字典名称,如:供应商类型',
|
||||
`dict_code` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '字典编码(租户内唯一),如:supplier_type',
|
||||
`remark` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`sort` INT NOT NULL DEFAULT 0 COMMENT '排序,数字越小越靠前',
|
||||
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:1 启用 0 停用',
|
||||
`create_user_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '创建人用户ID',
|
||||
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`delete_time` DATETIME DEFAULT NULL COMMENT '删除时间(软删除)',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_tenant_dict_code` (`tenant_id`, `dict_code`),
|
||||
KEY `idx_tenant_status_sort` (`tenant_id`, `status`, `sort`, `id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户端-数据字典(字典列表)';
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `yz_backend_dict_item` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键ID',
|
||||
`tenant_id` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '租户ID,须与所属字典一致',
|
||||
`dict_id` BIGINT UNSIGNED NOT NULL DEFAULT 0 COMMENT '所属字典ID(yz_backend_dict.id)',
|
||||
`item_label` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '字典项名称(显示文案),如:原材料供应商',
|
||||
`item_value` VARCHAR(100) NOT NULL DEFAULT '' COMMENT '字典项值(业务入库值),如:1',
|
||||
`tag_type` VARCHAR(20) NOT NULL DEFAULT '' COMMENT '标签色(el-tag type):primary/success/warning/danger/info,留空不渲染标签',
|
||||
`sort` INT NOT NULL DEFAULT 0 COMMENT '排序,数字越小越靠前',
|
||||
`status` TINYINT NOT NULL DEFAULT 1 COMMENT '状态:1 启用 0 停用',
|
||||
`is_default` TINYINT NOT NULL DEFAULT 0 COMMENT '是否默认选中:0 否 1 是',
|
||||
`remark` VARCHAR(500) NOT NULL DEFAULT '' COMMENT '备注',
|
||||
`create_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||||
`update_time` DATETIME DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||||
`delete_time` DATETIME DEFAULT NULL COMMENT '删除时间(软删除)',
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_tenant_dict_sort` (`tenant_id`, `dict_id`, `sort`, `id`),
|
||||
KEY `idx_tenant_dict_value` (`tenant_id`, `dict_id`, `item_value`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='租户端-字典项';
|
||||
Reference in New Issue
Block a user