-- 全局组织架构相关表:组织机构、员工、职位 -- 说明:组织架构已从 ERP 模块独立为全局基础功能,表名不带 erp 前缀 -- tenant 隔离:通过 tid 字段实现租户间数据隔离 -- 对应模型:go/models/erp.go(BackendErpOrganization / BackendErpEmployee / BackendErpPosition) -- DDL 与线上 go-platform 库实际结构一致(2026-08 导出) -- 组织架构表(OA 组织机构、通讯录、组织机构管理页依赖) CREATE TABLE IF NOT EXISTS `yz_backend_organization` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `tid` bigint(20) unsigned NOT NULL COMMENT '租户ID', `org_name` varchar(128) NOT NULL COMMENT '组织/部门名称', `org_code` varchar(64) NOT NULL COMMENT '组织/部门编码', `parent_id` bigint(20) unsigned DEFAULT '0' COMMENT '上级组织ID', `sort` int(10) unsigned DEFAULT '0' COMMENT '排序号', `leader_id` bigint(20) unsigned DEFAULT NULL COMMENT '部门负责人ID', `is_company` int(11) DEFAULT '0' COMMENT '是否是公司 0-不是 1-是', `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:1-启用,2-停用,0-删除', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` datetime DEFAULT NULL COMMENT '删除时间', `remark` varchar(512) DEFAULT NULL COMMENT '备注信息', PRIMARY KEY (`id`) USING BTREE, KEY `idx_tid_code` (`tid`,`org_code`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='组织架构表'; -- 员工信息表(account 全局唯一) CREATE TABLE IF NOT EXISTS `yz_backend_employee` ( `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `tid` int(11) DEFAULT NULL COMMENT '租户ID', `account` varchar(50) NOT NULL COMMENT '员工账号', `password` varchar(64) NOT NULL DEFAULT '' COMMENT '密码', `name` varchar(30) NOT NULL COMMENT '员工姓名', `gender` tinyint(4) NOT NULL DEFAULT '0' COMMENT '性别 0=未知 1=男 2=女', `birthday` date DEFAULT NULL COMMENT '生日', `affiliate_unit` varchar(100) DEFAULT NULL COMMENT '隶属单位', `department` varchar(50) DEFAULT NULL COMMENT '部门', `position` varchar(50) DEFAULT NULL COMMENT '职位', `education` varchar(20) DEFAULT NULL COMMENT '学历', `nation` varchar(20) DEFAULT NULL COMMENT '民族', `phone` varchar(20) DEFAULT NULL COMMENT '手机号', `wechat` varchar(50) DEFAULT NULL COMMENT '微信号', `email` varchar(100) DEFAULT NULL COMMENT '邮箱', `home_address` varchar(255) DEFAULT NULL COMMENT '家庭住址', `account_status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '账号状态 0=禁用 1=正常 2=离职', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` datetime DEFAULT NULL COMMENT '删除时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_account` (`account`) USING BTREE, KEY `idx_tid_account` (`tid`,`account`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='员工信息表'; -- 职位表 CREATE TABLE IF NOT EXISTS `yz_backend_position` ( `id` bigint(20) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID', `tid` bigint(20) unsigned NOT NULL COMMENT '租户ID', `department_id` bigint(20) unsigned NOT NULL COMMENT '部门ID', `position_code` varchar(50) NOT NULL COMMENT '职位编码', `position_name` varchar(100) NOT NULL COMMENT '职位名称', `position_type` tinyint(4) DEFAULT '0' COMMENT '职位类型:0-普通职位 1-管理职位 2-技术职位', `status` tinyint(4) NOT NULL DEFAULT '1' COMMENT '状态:0-禁用 1-启用', `sort` int(10) unsigned DEFAULT '0' COMMENT '排序', `remark` varchar(512) DEFAULT NULL COMMENT '备注', `create_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间', `update_time` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间', `delete_time` datetime DEFAULT NULL COMMENT '删除时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_tid_code` (`tid`,`position_code`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC COMMENT='职位表';