Skip to content

逻辑数据模型 ​

文档编号: SYS-DB-DES-001
版本: 1.0
日期: 2026-03-08
作者: 数据库架构师
状态: ✅ 已完成


一、概述 ​

1.1 文档目的 ​

本文档基于领域模型设计,建立System平台的逻辑数据模型(Logical Data Model),定义实体、属性、关系和业务规则,为物理数据模型设计提供基础。

1.2 输入文档 ​

  • 领域模型设计(SYS-DES-BA-002)
  • 架构基线文档(SYS-BASELINE-001)
  • 业务需求文档(BRD)

1.3 设计原则 ​

  • 业务一致性: 逻辑模型忠实反映业务领域模型
  • 规范化设计: 遵循数据库范式(3NF)
  • 可扩展性: 支持未来业务扩展
  • 清晰性: 实体关系清晰,易于理解

二、实体清单 ​

2.1 用户管理域实体 ​

序号实体名称实体代码说明对应领域聚合
1用户sys_user系统用户信息用户聚合
2用户角色关系sys_user_role用户与角色关联用户角色关系聚合
3用户部门关系sys_user_dept用户与部门关联用户部门关系聚合

2.2 权限管理域实体 ​

序号实体名称实体代码说明对应领域聚合
4角色sys_role系统角色定义角色聚合
5角色权限关系sys_role_permission角色与权限关联角色权限关系聚合
6权限sys_permission系统权限定义权限聚合
7菜单sys_menu系统菜单定义菜单聚合

2.3 组织管理域实体 ​

序号实体名称实体代码说明对应领域聚合
8部门sys_dept组织架构部门部门聚合
9岗位sys_position岗位定义岗位聚合
10员工sys_employee员工信息员工聚合

2.4 系统配置域实体 ​

序号实体名称实体代码说明对应领域聚合
11租户基本信息配置sys_tenant_config租户基本信息配置租户配置聚合
12Web信息配置sys_web_configWeb端配置信息Web配置聚合
13商务信息配置sys_business_config商务信息配置商务配置聚合
14数据字典类型sys_dict_type字典类型定义字典类型聚合
15数据字典项sys_dict_item字典项定义字典项聚合

2.5 审计日志域实体 ​

序号实体名称实体代码说明对应领域聚合
16操作日志sys_operation_log用户操作记录操作日志聚合
17登录日志sys_login_log用户登录记录登录日志聚合

三、实体详细定义 ​

3.1 用户实体 (sys_user) ​

实体说明: 存储系统用户的基本信息

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是用户ID自增主键
usernameVARCHAR(50)是用户名唯一,登录账号
passwordVARCHAR(100)是密码加密存储
nicknameVARCHAR(50)否昵称显示名称
emailVARCHAR(100)否邮箱唯一
phoneVARCHAR(20)否手机号唯一
avatarVARCHAR(200)否头像URL
statusTINYINT是状态0-禁用, 1-启用
genderTINYINT否性别0-未知, 1-男, 2-女
employee_noVARCHAR(50)否员工编号唯一
dept_idBIGINT否主属部门ID外键关联部门
remarkVARCHAR(500)否备注
create_timeDATETIME是创建时间
update_timeDATETIME是更新时间
create_byBIGINT否创建人ID
update_byBIGINT否更新人ID
deletedTINYINT是删除标志0-正常, 1-删除
tenant_idBIGINT是租户ID多租户隔离

业务规则:

  1. 用户名全局唯一,不可重复
  2. 密码必须加密存储(BCrypt)
  3. 邮箱和手机号如果填写必须唯一
  4. 员工编号如果填写必须唯一
  5. 逻辑删除,不物理删除数据

3.2 角色实体 (sys_role) ​

实体说明: 定义系统角色,用于权限控制

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是角色ID自增主键
role_codeVARCHAR(50)是角色编码唯一
role_nameVARCHAR(50)是角色名称
role_typeTINYINT是角色类型1-系统角色, 2-业务角色
data_scopeTINYINT是数据范围1-全部, 2-本部门, 3-本部门及子部门, 4-仅本人, 5-自定义
statusTINYINT是状态0-禁用, 1-启用
sort_orderINT是排序号升序排列
remarkVARCHAR(500)否备注
create_timeDATETIME是创建时间
update_timeDATETIME是更新时间
create_byBIGINT否创建人ID
update_byBIGINT否更新人ID
deletedTINYINT是删除标志0-正常, 1-删除
tenant_idBIGINT是租户ID

业务规则:

  1. 角色编码全局唯一
  2. 系统角色不可删除
  3. 数据范围决定用户可查看的数据范围

3.3 用户角色关系实体 (sys_user_role) ​

实体说明: 用户与角色的多对多关系

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是关系ID自增主键
user_idBIGINT是用户ID外键关联用户
role_idBIGINT是角色ID外键关联角色
is_primaryTINYINT是是否主角色0-否, 1-是
create_timeDATETIME是创建时间
tenant_idBIGINT是租户ID

业务规则:

  1. 一个用户可以有多个角色
  2. 一个角色可以分配给多个用户
  3. 一个用户只能有一个主角色
  4. 用户ID和角色ID组合唯一

3.4 权限实体 (sys_permission) ​

实体说明: 定义系统权限点

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是权限ID自增主键
perm_codeVARCHAR(100)是权限编码唯一,如: sys:user:add
perm_nameVARCHAR(50)是权限名称
resource_typeTINYINT是资源类型1-菜单, 2-按钮, 3-接口
resource_urlVARCHAR(200)否资源URL接口地址或路由
http_methodVARCHAR(10)否HTTP方法GET/POST/PUT/DELETE
statusTINYINT是状态0-禁用, 1-启用
remarkVARCHAR(500)否备注
create_timeDATETIME是创建时间
update_timeDATETIME是更新时间
deletedTINYINT是删除标志

业务规则:

  1. 权限编码全局唯一,使用冒号分隔的层级结构
  2. 接口类型的权限需要配置URL和HTTP方法

3.5 角色权限关系实体 (sys_role_permission) ​

实体说明: 角色与权限的多对多关系

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是关系ID自增主键
role_idBIGINT是角色ID外键关联角色
permission_idBIGINT是权限ID外键关联权限
create_timeDATETIME是创建时间

业务规则:

  1. 一个角色可以有多个权限
  2. 一个权限可以分配给多个角色
  3. 角色ID和权限ID组合唯一

3.6 部门实体 (sys_dept) ​

实体说明: 组织架构部门信息

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是部门ID自增主键
dept_codeVARCHAR(50)是部门编码唯一
dept_nameVARCHAR(50)是部门名称
parent_idBIGINT是父部门ID0表示根部门
ancestorsVARCHAR(500)是祖先路径逗号分隔的ID路径
dept_levelINT是部门层级从1开始
leader_idBIGINT否负责人ID外键关联用户
phoneVARCHAR(20)否联系电话
emailVARCHAR(100)否邮箱
sort_orderINT是排序号
statusTINYINT是状态0-禁用, 1-启用
remarkVARCHAR(500)否备注
create_timeDATETIME是创建时间
update_timeDATETIME是更新时间
create_byBIGINT否创建人ID
update_byBIGINT否更新人ID
deletedTINYINT是删除标志
tenant_idBIGINT是租户ID

业务规则:

  1. 部门编码全局唯一
  2. 支持多级部门结构
  3. 祖先路径用于快速查询子部门
  4. 删除部门前需检查是否有子部门或关联用户

3.7 用户部门关系实体 (sys_user_dept) ​

实体说明: 用户与部门的多对多关系

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是关系ID自增主键
user_idBIGINT是用户ID外键关联用户
dept_idBIGINT是部门ID外键关联部门
is_primaryTINYINT是是否主部门0-否, 1-是
create_timeDATETIME是创建时间
tenant_idBIGINT是租户ID

业务规则:

  1. 一个用户可以属于多个部门
  2. 一个部门可以有多个用户
  3. 一个用户只能有一个主部门
  4. 用户ID和部门ID组合唯一

3.8 岗位实体 (sys_position) ​

实体说明: 岗位定义

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是岗位ID自增主键
position_codeVARCHAR(50)是岗位编码唯一
position_nameVARCHAR(50)是岗位名称
position_levelINT否岗位级别数字越小级别越高
statusTINYINT是状态0-禁用, 1-启用
sort_orderINT是排序号
remarkVARCHAR(500)否备注
create_timeDATETIME是创建时间
update_timeDATETIME是更新时间
create_byBIGINT否创建人ID
update_byBIGINT否更新人ID
deletedTINYINT是删除标志
tenant_idBIGINT是租户ID

3.9 员工实体 (sys_employee) ​

实体说明: 员工信息,存储企业员工的详细信息,与系统用户账号关联

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是员工ID自增主键
employee_noVARCHAR(50)是员工编号唯一,企业内唯一标识
employee_nameVARCHAR(50)是员工姓名
user_idBIGINT否关联用户ID外键关联sys_user,可为空
dept_idBIGINT是所属部门ID外键关联sys_dept
position_idBIGINT否岗位ID外键关联sys_position
genderTINYINT否性别0-未知, 1-男, 2-女
birthdayDATE否出生日期
id_cardVARCHAR(18)否身份证号加密存储
phoneVARCHAR(20)否联系电话
emailVARCHAR(100)否邮箱
entry_dateDATE否入职日期
leave_dateDATE否离职日期为空表示在职
employment_statusTINYINT是在职状态1-在职, 2-离职, 3-试用期
work_locationVARCHAR(100)否工作地点
addressVARCHAR(200)否家庭住址
emergency_contactVARCHAR(50)否紧急联系人
emergency_phoneVARCHAR(20)否紧急联系电话
remarkVARCHAR(500)否备注
create_timeDATETIME是创建时间
update_timeDATETIME是更新时间
create_byBIGINT否创建人ID
update_byBIGINT否更新人ID
deletedTINYINT是删除标志0-正常, 1-删除
tenant_idBIGINT是租户ID

业务规则:

  1. 员工编号全局唯一,不可重复
  2. 一个员工可以关联一个系统用户账号(可选)
  3. 一个员工必须属于一个部门
  4. 员工可以分配一个岗位(可选)
  5. 身份证号加密存储,保障隐私安全
  6. 支持记录员工入职、离职时间

3.10 菜单实体 (sys_menu) ​

实体说明: 系统菜单定义

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是菜单ID自增主键
menu_nameVARCHAR(50)是菜单名称
menu_typeTINYINT是菜单类型1-目录, 2-菜单, 3-按钮
iconVARCHAR(100)否菜单图标
pathVARCHAR(200)否路由路径
componentVARCHAR(200)否组件路径
permissionVARCHAR(100)否权限标识
parent_idBIGINT是父菜单ID0表示根菜单
menu_levelINT是菜单层级
sort_orderINT是排序号
is_cacheTINYINT是是否缓存0-否, 1-是
is_visibleTINYINT是是否可见0-否, 1-是
statusTINYINT是状态0-禁用, 1-启用
remarkVARCHAR(500)否备注
create_timeDATETIME是创建时间
update_timeDATETIME是更新时间
create_byBIGINT否创建人ID
update_byBIGINT否更新人ID
deletedTINYINT是删除标志
tenant_idBIGINT是租户ID

3.10 租户基本信息配置实体 (sys_tenant_config) ​

实体说明: 存储租户的基本信息配置,如租户名称、Logo、联系人等

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是配置ID自增主键
tenant_nameVARCHAR(100)是租户名称显示名称
tenant_codeVARCHAR(50)是租户编码唯一标识
logo_urlVARCHAR(200)否租户Logo图片URL
contact_nameVARCHAR(50)否联系人姓名
contact_phoneVARCHAR(20)否联系人电话
contact_emailVARCHAR(100)否联系人邮箱
addressVARCHAR(200)否公司地址
industry_typeVARCHAR(50)否行业类型
company_scaleVARCHAR(50)否公司规模
expire_timeDATETIME否到期时间租户服务到期时间
statusTINYINT是租户状态0-禁用, 1-启用
remarkVARCHAR(500)否备注
create_timeDATETIME是创建时间
update_timeDATETIME是更新时间
create_byBIGINT否创建人ID
update_byBIGINT否更新人ID
deletedTINYINT是删除标志0-正常, 1-删除
tenant_idBIGINT是租户ID当前租户标识

业务规则:

  1. 租户编码全局唯一,不可重复
  2. 每个租户只有一条基本信息配置记录
  3. 租户到期后自动禁用
  4. 支持逻辑删除

3.11 Web信息配置实体 (sys_web_config) ​

实体说明: 存储Web端的配置信息,如网站标题、主题、版权信息等

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是配置ID自增主键
site_titleVARCHAR(100)否网站标题浏览器标签页显示
site_logoVARCHAR(200)否网站Logo图片URL
site_faviconVARCHAR(200)否网站图标浏览器标签图标
login_bg_imageVARCHAR(200)否登录背景图登录页面背景
login_titleVARCHAR(100)否登录页标题登录页面显示
copyrightVARCHAR(200)否版权信息页面底部显示
icp_recordVARCHAR(100)否ICP备案号页面底部显示
theme_colorVARCHAR(20)否主题色系统主题颜色
sidebar_themeTINYINT否侧边栏主题1-深色, 2-浅色
layout_modeTINYINT否布局模式1-左侧菜单, 2-顶部菜单
is_show_watermarkTINYINT是是否显示水印0-否, 1-是
watermark_textVARCHAR(100)否水印文字
remarkVARCHAR(500)否备注
create_timeDATETIME是创建时间
update_timeDATETIME是更新时间
create_byBIGINT否创建人ID
update_byBIGINT否更新人ID
deletedTINYINT是删除标志0-正常, 1-删除
tenant_idBIGINT是租户ID当前租户标识

业务规则:

  1. 每个租户只有一条Web信息配置记录
  2. 主题色使用十六进制格式,如 #1890ff
  3. 支持逻辑删除

3.12 商务信息配置实体 (sys_business_config) ​

实体说明: 存储商务相关的配置信息,如合同信息、支付配置、发票信息等

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是配置ID自增主键
contract_noVARCHAR(50)否合同编号
contract_start_dateDATE否合同开始日期
contract_end_dateDATE否合同结束日期
service_typeVARCHAR(50)否服务类型
service_levelVARCHAR(50)否服务等级
max_user_countINT否最大用户数租户可创建的最大用户数
max_storage_sizeBIGINT否最大存储空间单位MB
payment_cycleTINYINT否付款周期1-月付, 2-季付, 3-年付
payment_statusTINYINT否付款状态0-未付款, 1-已付款
invoice_titleVARCHAR(200)否发票抬头
invoice_tax_noVARCHAR(50)否发票税号
invoice_addressVARCHAR(200)否发票地址
invoice_phoneVARCHAR(20)否发票电话
invoice_bankVARCHAR(100)否开户银行
invoice_accountVARCHAR(50)否银行账号
sales_managerVARCHAR(50)否销售经理
sales_phoneVARCHAR(20)否销售电话
remarkVARCHAR(500)否备注
create_timeDATETIME是创建时间
update_timeDATETIME是更新时间
create_byBIGINT否创建人ID
update_byBIGINT否更新人ID
deletedTINYINT是删除标志0-正常, 1-删除
tenant_idBIGINT是租户ID当前租户标识

业务规则:

  1. 每个租户只有一条商务信息配置记录
  2. 合同结束日期必须晚于开始日期
  3. 最大用户数用于限制租户创建用户数量
  4. 支持逻辑删除

3.13 数据字典类型实体 (sys_dict_type) ​

实体说明: 数据字典类型

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是类型ID自增主键
dict_codeVARCHAR(50)是字典编码唯一
dict_nameVARCHAR(50)是字典名称
statusTINYINT是状态0-禁用, 1-启用
remarkVARCHAR(500)否备注
create_timeDATETIME是创建时间
update_timeDATETIME是更新时间
create_byBIGINT否创建人ID
update_byBIGINT否更新人ID
deletedTINYINT是删除标志
tenant_idBIGINT是租户ID

3.14 数据字典项实体 (sys_dict_item) ​

实体说明: 数据字典项

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是项ID自增主键
dict_type_idBIGINT是字典类型ID外键关联字典类型
item_codeVARCHAR(50)是项编码
item_labelVARCHAR(50)是项标签显示文本
item_valueVARCHAR(100)是项值实际值
sort_orderINT是排序号
statusTINYINT是状态0-禁用, 1-启用
remarkVARCHAR(500)否备注
create_timeDATETIME是创建时间
update_timeDATETIME是更新时间
create_byBIGINT否创建人ID
update_byBIGINT否更新人ID
deletedTINYINT是删除标志
tenant_idBIGINT是租户ID

3.15 操作日志实体 (sys_operation_log) ​

实体说明: 用户操作日志

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是日志ID自增主键
user_idBIGINT否用户ID
usernameVARCHAR(50)否用户名
operation_typeVARCHAR(50)是操作类型如: 新增、修改、删除
operation_descVARCHAR(200)是操作描述
request_methodVARCHAR(10)否请求方法
request_urlVARCHAR(500)否请求URL
request_paramsTEXT否请求参数JSON格式
response_dataTEXT否响应数据JSON格式
ip_addressVARCHAR(50)否IP地址
user_agentVARCHAR(500)否浏览器UA
execution_timeINT否执行时长(ms)
statusTINYINT是操作状态0-失败, 1-成功
error_msgTEXT否错误信息
create_timeDATETIME是创建时间
tenant_idBIGINT是租户ID

3.16 登录日志实体 (sys_login_log) ​

实体说明: 用户登录日志

主键: id

属性列表:

属性名数据类型必填说明业务规则
idBIGINT是日志ID自增主键
user_idBIGINT否用户ID
usernameVARCHAR(50)否用户名
login_typeTINYINT是登录类型1-账号密码, 2-手机号, 3-邮箱
ip_addressVARCHAR(50)否IP地址
login_locationVARCHAR(100)否登录地点
browserVARCHAR(50)否浏览器
osVARCHAR(50)否操作系统
statusTINYINT是登录状态0-失败, 1-成功
error_msgVARCHAR(500)否错误信息
create_timeDATETIME是创建时间
tenant_idBIGINT是租户ID

四、实体关系图 ​

mermaid
erDiagram
    sys_user ||--o{ sys_user_role : "拥有"
    sys_role ||--o{ sys_user_role : "分配给"
    sys_role ||--o{ sys_role_permission : "拥有"
    sys_permission ||--o{ sys_role_permission : "分配给"
    sys_user ||--o{ sys_user_dept : "属于"
    sys_dept ||--o{ sys_user_dept : "包含"
    sys_dept ||--o{ sys_dept : "父子"
    sys_dept ||--o{ sys_employee : "包含"
    sys_position ||--o{ sys_employee : "分配"
    sys_user ||--o| sys_employee : "关联"
    sys_user ||--o{ sys_login_log : "产生"
    sys_user ||--o{ sys_operation_log : "产生"
    sys_dict_type ||--o{ sys_dict_item : "包含"
    sys_menu ||--o{ sys_menu : "父子"

    sys_user {
        bigint id PK
        varchar username
        varchar password
        varchar nickname
        varchar email
        varchar phone
        tinyint status
        bigint dept_id
        bigint tenant_id
    }

    sys_role {
        bigint id PK
        varchar role_code
        varchar role_name
        tinyint role_type
        tinyint data_scope
        tinyint status
        bigint tenant_id
    }

    sys_user_role {
        bigint id PK
        bigint user_id FK
        bigint role_id FK
        tinyint is_primary
        bigint tenant_id
    }

    sys_permission {
        bigint id PK
        varchar perm_code
        varchar perm_name
        tinyint resource_type
        varchar resource_url
        varchar http_method
    }

    sys_role_permission {
        bigint id PK
        bigint role_id FK
        bigint permission_id FK
    }

    sys_dept {
        bigint id PK
        varchar dept_code
        varchar dept_name
        bigint parent_id
        varchar ancestors
        int dept_level
        bigint tenant_id
    }

    sys_user_dept {
        bigint id PK
        bigint user_id FK
        bigint dept_id FK
        tinyint is_primary
        bigint tenant_id
    }

    sys_menu {
        bigint id PK
        varchar menu_name
        tinyint menu_type
        varchar path
        bigint parent_id
        int sort_order
        bigint tenant_id
    }

    sys_tenant_config {
        bigint id PK
        varchar tenant_name
        varchar tenant_code
        varchar logo_url
        varchar contact_name
        varchar contact_phone
        datetime expire_time
        tinyint status
        bigint tenant_id
    }

    sys_web_config {
        bigint id PK
        varchar site_title
        varchar site_logo
        varchar theme_color
        tinyint sidebar_theme
        tinyint layout_mode
        bigint tenant_id
    }

    sys_business_config {
        bigint id PK
        varchar contract_no
        date contract_start_date
        date contract_end_date
        int max_user_count
        bigint max_storage_size
        tinyint payment_cycle
        tinyint payment_status
        bigint tenant_id
    }

    sys_dict_type {
        bigint id PK
        varchar dict_code
        varchar dict_name
        bigint tenant_id
    }

    sys_dict_item {
        bigint id PK
        bigint dict_type_id FK
        varchar item_code
        varchar item_label
        varchar item_value
        bigint tenant_id
    }

    sys_operation_log {
        bigint id PK
        bigint user_id
        varchar username
        varchar operation_type
        varchar request_url
        int execution_time
        tinyint status
        datetime create_time
        bigint tenant_id
    }

    sys_login_log {
        bigint id PK
        bigint user_id
        varchar username
        tinyint login_type
        varchar ip_address
        tinyint status
        datetime create_time
        bigint tenant_id
    }

    sys_employee {
        bigint id PK
        varchar employee_no
        varchar employee_name
        bigint user_id FK
        bigint dept_id FK
        bigint position_id FK
        tinyint gender
        date birthday
        varchar id_card
        varchar phone
        varchar email
        date entry_date
        date leave_date
        tinyint employment_status
        bigint tenant_id
    }

五、关系说明 ​

5.1 用户-角色关系 ​

关系类型: 多对多(通过sys_user_role关联)

关系说明:

  • 一个用户可以拥有多个角色
  • 一个角色可以分配给多个用户
  • 通过is_primary标识用户的主角色

5.2 角色-权限关系 ​

关系类型: 多对多(通过sys_role_permission关联)

关系说明:

  • 一个角色可以拥有多个权限
  • 一个权限可以分配给多个角色
  • 权限控制到按钮和接口级别

5.3 用户-部门关系 ​

关系类型: 多对多(通过sys_user_dept关联)

关系说明:

  • 一个用户可以属于多个部门
  • 一个部门可以包含多个用户
  • 通过is_primary标识用户的主部门

5.4 部门层级关系 ​

关系类型: 自引用一对多

关系说明:

  • 部门支持多级结构
  • 通过parent_id指向父部门
  • 通过ancestors记录完整路径

5.5 字典类型-字典项关系 ​

关系类型: 一对多

关系说明:

  • 一个字典类型包含多个字典项
  • 字典项通过dict_type_id关联字典类型

5.6 部门-员工关系 ​

关系类型: 一对多

关系说明:

  • 一个部门可以包含多个员工
  • 一个员工必须属于一个部门
  • 通过dept_id关联部门

5.7 岗位-员工关系 ​

关系类型: 一对多(可选)

关系说明:

  • 一个岗位可以分配给多个员工
  • 一个员工可以分配一个岗位(可选)
  • 通过position_id关联岗位

5.8 用户-员工关系 ​

关系类型: 一对一或一对零(1:1 或 1:0)

关系说明:

  • 一个员工可以关联一个系统用户账号(可选)
  • 一个系统用户最多关联一个员工(也可能不关联员工)
  • 通过user_id关联用户
  • 用于员工登录系统
  • 需在sys_employee.user_id上建立唯一索引,确保一个用户只能关联一个员工

六、业务规则汇总 ​

6.1 唯一性约束 ​

实体字段说明
sys_userusername用户名全局唯一
sys_useremail邮箱唯一(非空时)
sys_userphone手机号唯一(非空时)
sys_useremployee_no员工编号唯一(非空时)
sys_rolerole_code角色编码全局唯一
sys_deptdept_code部门编码全局唯一
sys_positionposition_code岗位编码全局唯一
sys_tenant_configtenant_code租户编码全局唯一
sys_dict_typedict_code字典编码全局唯一

6.2 外键关系 ​

子表外键字段父表父表字段
sys_userdept_idsys_deptid
sys_user_roleuser_idsys_userid
sys_user_rolerole_idsys_roleid
sys_role_permissionrole_idsys_roleid
sys_role_permissionpermission_idsys_permissionid
sys_user_deptuser_idsys_userid
sys_user_deptdept_idsys_deptid
sys_deptparent_idsys_deptid
sys_deptleader_idsys_userid
sys_menuparent_idsys_menuid
sys_dict_itemdict_type_idsys_dict_typeid
sys_employeeuser_idsys_userid
sys_employeedept_idsys_deptid
sys_employeeposition_idsys_positionid

6.3 逻辑删除规则 ​

以下实体支持逻辑删除(deleted字段):

  • sys_user
  • sys_role
  • sys_dept
  • sys_position
  • sys_employee
  • sys_tenant_config
  • sys_web_config
  • sys_business_config
  • sys_menu
  • sys_dict_type
  • sys_dict_item

删除检查:

  1. 删除部门前检查是否有子部门
  2. 删除部门前检查是否有关联用户
  3. 删除部门前检查是否有关联员工
  4. 删除角色前检查是否有分配用户
  5. 删除岗位前检查是否有关联员工
  6. 删除字典类型前检查是否有字典项

七、修订记录 ​

版本日期作者变更内容
1.02026-03-08数据库架构师初始版本,建立逻辑数据模型

Released under the MIT License.