# 数据库表结构设计 ## 一、统一认证网关(主工程)表结构 ### 1. 用户表(users) | 字段名 | 类型 | 说明 | | -------------- | -------------- | -------------------------- | | id | BIGINT | 主键,自增 | | username | VARCHAR(50) | 用户名(租户/子系统内唯一)| | password | VARCHAR(255) | 密码(加密存储) | | user_type | ENUM | 用户类型(TENANT/SUBSYSTEM)| | tenant_id | BIGINT | 所属租户ID,外键->tenants.id(所有用户必填,标识归属租户) | | subsystem_id | BIGINT | 所属子系统ID,外键->subsystems.id(仅子系统用户必填)| | email | VARCHAR(100) | 邮箱 | | phone | VARCHAR(20) | 手机号 | | real_name | VARCHAR(50) | 真实姓名 | | status | ENUM | 状态(ACTIVE/INACTIVE/LOCKED/DELETED)| | create_time | TIMESTAMP | 创建时间 | | update_time | TIMESTAMP | 更新时间 | | UNIQUE KEY uk_tenant_username (tenant_id, username) | | UNIQUE KEY uk_subsystem_username (subsystem_id, username) | > 主键:id > 外键:tenant_id 关联 tenants.id(所有用户必填),subsystem_id 关联 subsystems.id(仅子系统用户必填) ### 2. 租户表(tenants) | 字段名 | 类型 | 说明 | | -------------- | -------------- | -------------------------- | | id | BIGINT | 主键,自增 | | tenant_code | VARCHAR(50) | 租户唯一标识 | | tenant_name | VARCHAR(100) | 租户名称 | | description | TEXT | 描述 | | status | ENUM | 状态(ACTIVE/INACTIVE) | | create_time | TIMESTAMP | 创建时间 | | update_time | TIMESTAMP | 更新时间 | > 主键:id ### 3. 子系统表(subsystems) | 字段名 | 类型 | 说明 | | -------------- | -------------- | -------------------------- | | id | BIGINT | 主键,自增 | | subsystem_code | VARCHAR(50) | 子系统唯一标识 | | subsystem_name | VARCHAR(100) | 子系统名称 | | description | TEXT | 描述 | | base_url | VARCHAR(255) | 子系统入口地址 | | status | ENUM | 状态(ACTIVE/INACTIVE) | | create_time | TIMESTAMP | 创建时间 | | update_time | TIMESTAMP | 更新时间 | > 主键:id ### 4. 租户-子系统权限表(tenant_subsystem_permissions) | 字段名 | 类型 | 说明 | | -------------- | -------------- | -------------------------- | | id | BIGINT | 主键,自增 | | tenant_id | BIGINT | 租户ID,外键->tenants.id | | subsystem_id | BIGINT | 子系统ID,外键->subsystems.id | | permissions | JSON | 权限配置 | | status | ENUM | 状态(ACTIVE/INACTIVE) | | create_time | TIMESTAMP | 创建时间 | | update_time | TIMESTAMP | 更新时间 | | UNIQUE KEY uk_tenant_subsystem (tenant_id, subsystem_id) | > 主键:id > 外键:tenant_id 关联 tenants.id,subsystem_id 关联 subsystems.id