114 lines
2.3 KiB
Plaintext
114 lines
2.3 KiB
Plaintext
erDiagram
|
|
USER {
|
|
int id
|
|
int company_id
|
|
string name
|
|
string email
|
|
string role
|
|
}
|
|
|
|
COMPANY {
|
|
int id
|
|
string name
|
|
string industry
|
|
string size
|
|
}
|
|
|
|
CANDIDATE_PROFILE {
|
|
int id
|
|
int user_id
|
|
string degree
|
|
int years_experience
|
|
string skill_tags
|
|
string resume_url
|
|
}
|
|
|
|
JOB_POSITION {
|
|
int id
|
|
int company_id
|
|
string title
|
|
string level
|
|
string required_skills
|
|
string description
|
|
string exam_policy_id
|
|
}
|
|
|
|
EXAM_POLICY {
|
|
string id
|
|
int total_questions
|
|
float easy_ratio
|
|
float medium_ratio
|
|
float hard_ratio
|
|
string type_ratio
|
|
}
|
|
|
|
QUESTION {
|
|
int id
|
|
string content
|
|
string type
|
|
string skill_tag
|
|
int difficulty
|
|
string source
|
|
bool is_active
|
|
}
|
|
|
|
QUESTION_STATS {
|
|
int question_id
|
|
int used_count
|
|
float avg_score
|
|
float correct_rate
|
|
float discrimination
|
|
float feedback_score
|
|
datetime last_used_at
|
|
}
|
|
|
|
EXAM_TEMPLATE {
|
|
int id
|
|
int job_id
|
|
string policy_id
|
|
string question_slots
|
|
}
|
|
|
|
EXAM_SESSION {
|
|
int id
|
|
int candidate_id
|
|
int job_id
|
|
int template_id
|
|
datetime start_time
|
|
datetime submit_time
|
|
float total_score
|
|
string status
|
|
}
|
|
|
|
ANSWER {
|
|
int id
|
|
int session_id
|
|
int question_id
|
|
string content
|
|
float score
|
|
float time_taken
|
|
}
|
|
|
|
QUESTION_FEEDBACK {
|
|
int id
|
|
int question_id
|
|
int from_user_id
|
|
int session_id
|
|
int rating
|
|
string comment
|
|
datetime created_at
|
|
}
|
|
|
|
COMPANY ||--o{ USER : has
|
|
USER ||--o{ CANDIDATE_PROFILE : has
|
|
COMPANY ||--o{ JOB_POSITION : posts
|
|
EXAM_POLICY ||--o{ JOB_POSITION : configures
|
|
JOB_POSITION ||--o{ EXAM_TEMPLATE : uses
|
|
EXAM_TEMPLATE ||--o{ EXAM_SESSION : instantiates
|
|
USER ||--o{ EXAM_SESSION : takes
|
|
EXAM_SESSION ||--o{ ANSWER : contains
|
|
QUESTION ||--o{ ANSWER : answered_in
|
|
QUESTION ||--|| QUESTION_STATS : stats
|
|
QUESTION ||--o{ QUESTION_FEEDBACK : receives
|
|
USER ||--o{ QUESTION_FEEDBACK : writes
|