本文档包含评估系统的完整数据库实体关系图(ER图),展示了所有29个核心数据表之间的关系。
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
}