# 评估系统 - 数据库ER图 ## 概述 本文档包含评估系统的完整数据库实体关系图(ER图),展示了所有29个核心数据表之间的关系。 ## 实体关系图 ```mermaid erDiagram User ||--o{ Client : creates User ||--o{ Project : creates User ||--o{ Plan : creates User ||--o{ Expert : creates User ||--o{ Hierarchy : creates User ||--o{ Problem : creates User ||--o{ Model : creates User ||--o{ SysModel : creates User ||--o{ DeviceModel : creates User ||--o{ MeasureModel : creates User ||--o{ Task : creates User ||--o{ Record : creates User ||--o{ EvalResult : creates User ||--o{ Device : creates User ||--o{ Car : creates User ||--o{ UserFile : creates User ||--o{ Role : creates User ||--o{ UserSession : creates User ||--o{ Contract : creates User ||--o{ Archive : creates User ||--o{ DeviceUsage : creates User ||--o{ ProjectInfo : creates User ||--o{ MeasureRule : creates User ||--o{ ByPassInfo : creates User ||--o{ ErrorReview : creates User ||--o{ MembershipMatrix : creates User ||--o{ SignRecord : creates User ||--o{ ReportTemplate : creates Client ||--o{ Project : owns Client ||--o{ Plan : commissions Client ||--o{ Contract : signs Project ||--o{ Plan : contains Project ||--o{ Device : has Project ||--o{ Task : includes Project ||--o{ DeviceUsage : uses Project ||--o{ ProjectInfo : details Project ||--o{ ProjectSignRecord : signs Plan ||--o{ Task : generates Plan ||--|| Expert : uses_system_fuzzy Plan ||--|| Expert : uses_system_score Plan ||--|| Expert : uses_device_fuzzy Plan ||--|| Expert : uses_device_score Hierarchy ||--o{ Problem : contains Hierarchy ||--o{ Model : contains Hierarchy ||--o{ MeasureRule : defines Model ||--o{ SysModel : extends Model ||--o{ DeviceModel : extends Model ||--o{ MeasureModel : extends Expert ||--|| MembershipMatrix : has Expert ||--o{ CompareMatrix : has Expert ||--|| SysModel : belongs_to_system Expert ||--|| DeviceModel : belongs_to_device Task ||--o{ Record : records Task ||--|| EvalResult : produces Task ||--|| ByPassInfo : bypasses Record ||--o{ ErrorReview : reviews Problem ||--o{ Record : referenced_by Device ||--o{ DeviceUsage : used_in UserFile ||--o{ Archive : archived_as UserFile ||--o{ Contract : attached_to User { int id PK string name UK string password string mobile UK enum state string department_path int role_id string avatar string email text remark datetime last_access_time boolean deleted int creator_id FK datetime create_time datetime update_time } Client { int id PK string name UK enum type string intention boolean deleted int creator_id FK datetime create_time datetime update_time } Project { int id PK string name UK enum type enum usage_type string department_path int client_id FK string construction_license string item_code string branch_company json construction_company_info json supervisor_company_info json address_info boolean deleted int creator_id FK datetime create_time datetime update_time } Plan { int id PK string name UK enum type int client_id FK int system_model_id FK int system_fuzzy_expert_id FK int system_score_expert_id FK int device_model_id FK int device_fuzzy_math_id FK int device_score_expert_id FK enum state datetime completed_time boolean deleted int creator_id FK datetime create_time datetime update_time } Hierarchy { int id PK string name UK json content boolean deleted int creator_id FK datetime create_time datetime update_time } Problem { int id PK string name UK int hierarchy_id FK string hierarchy_path text description json specific_terms json suggest_actions json incident_types json number_factors json scale_factors text review_paradigm string responsible_person string responsible_department int incident_case_file_id FK text correct_practice float num_value boolean deleted int creator_id FK datetime create_time datetime update_time } Expert { int id PK string name UK string type string contact float matrix_weight float membership_weight float expert_inquiry_weight json expert_funcs json weight_map int membership_matrix_id FK json compare_matrix_map boolean deleted int creator_id FK datetime create_time datetime update_time } Model { int id PK string name UK string type int hierarchy_id FK int version boolean deleted int creator_id FK datetime create_time datetime update_time } SysModel { int id PK string name UK string type int hierarchy_id FK int version json problem_ids json hierarchy_paths boolean deleted int creator_id FK datetime create_time datetime update_time } Car { int id PK string name UK string model string department_path int initial_mileage int driver_id FK boolean deleted int creator_id FK datetime create_time datetime update_time } Task { int id PK string name UK string task_type date date string assemble_place boolean deleted int creator_id FK datetime create_time datetime update_time } Record { int id PK string name UK string record_type int check_task_id FK int problem_id FK string hierarchy_name json hierarchy_names int device_id FK json images text remark boolean deleted int creator_id FK datetime create_time datetime update_time } EvalResult { int id PK string name UK string type int check_task_id FK float score float display_score json error_counts int plan_id FK int project_id FK int client_id FK boolean contain_system_res boolean contain_device_res boolean deleted int creator_id FK datetime create_time datetime update_time } Device { int id PK string name UK enum type string manufacturer_number boolean busy json properties boolean deleted int creator_id FK datetime create_time datetime update_time } UserFile { int id PK string name UK string original_name string file_path bigint file_size string file_type string mime_type datetime upload_time boolean deleted int creator_id FK datetime create_time datetime update_time } ``` ## 关系说明 ### 主要关系类型 1. **一对多关系 (||--o{)** - 用户创建各种业务实体 - 委托方拥有多个项目 - 项目包含多个计划 - 层级包含多个问题 2. **一对一关系 (||--||)** - 计划与专家的一对一关联 - 专家与隶属度矩阵的一对一关联 3. **继承关系** - SysModel、DeviceModel、MeasureModel 继承自 Model - ProjectSignRecord、WorkSignRecord 继承自 SignRecord ### 核心业务流程 1. **用户管理流程**:User → Role → UserSession 2. **业务管理流程**:Client → Project → Plan → Task 3. **评估流程**:Task → Record → EvalResult 4. **标准体系流程**:Hierarchy → Problem → Model → Expert ## 注意事项 - 本ER图仅展示核心业务表,不包含JPA自动生成的多对多关系表 - 所有表都包含软删除机制(deleted字段) - 所有表都包含审计字段(creator_id、create_time、update_time) - JSON字段用于存储复杂的数据结构