Database

입사 지원 ERD 그려보기

yerinpark 2023. 11. 28. 15:35

https://dbdiagram.io/home

 

dbdiagram.io - Database Relationship Diagrams Design Tool

 

dbdiagram.io

 

입사 지원을 하다보면 이력서에 작성해야 할 내용이 많다. 방대한 입력 데이터를 회사는 어떻게 DB에 저장할까?

그림으로 데이터 관계도를 그려봤다.

 

채용 프로세스를 살펴보면 대부분

입사 지원(이력서 제출) > 코딩 테스트/필기 시험 > 1차 면접 > 임원 면접 > 최종 발표

와 같은 형식으로 진행된다.

 

dbdiagram 사이트를 통해 ERD를 그려보았다.

 

dbdiagram 코드

// Use DBML to define your database structure
// Docs: https://dbml.dbdiagram.io/docs

Table applicant {
  applicant_id integer [primary key]
  name integer
  birthdate date
}

Table apply {
    apply_id integer [primary key]
    applicant_id integer // fk
    recruit_id integer // fk
    resume_id integer // fk
    pass integer unique [note: '필기시험 합격, 코딩테스트 합격'] // fk
    created_at timestamp
}

Table company {
  company_id integer [primary key]
  name varchar
}

Table recruit {
  recruit_id integer [primary key]
  title varchar [note: '2023 상반기 신입 공채, 2023 하반기 채용연계형 인턴']
  start_date date
  end_date date
  company_id integer // fk
}

Table progress {
  progress_id integer [primary key]
  title varchar [note: '필기시험, 코딩테스트, 1차 면접, 임원 면접']
  start_date date
  end_date date
  recruit_id integer // fk
}

Table resume {
  resume_id integer [primary key]
  applicant_id integer // fk
  recruit_id integer // fk
  question1 varchar [note: '1. 지원 동기']
  question2 varchar [note: '2. 직무 역량']
  question3 varchar [note: '3. 입사 후 포부']
}

Ref: apply.applicant_id > applicant.applicant_id
Ref: recruit.company_id > company.company_id
Ref: progress.recruit_id > recruit.recruit_id
Ref: apply.recruit_id > recruit.recruit_id
Ref: resume.applicant_id > applicant.applicant_id
Ref: resume.recruit_id > recruit.recruit_id
Ref: apply.resume_id > resume.resume_id

 

MySQL 코드

CREATE TABLE `applicant` (
  `applicant_id` integer PRIMARY KEY,
  `name` integer,
  `birthdate` date
);

CREATE TABLE `apply` (
  `apply_id` integer PRIMARY KEY,
  `applicant_id` integer,
  `recruit_id` integer,
  `resume_id` integer,
  `pass` integer UNIQUE COMMENT '필기시험 합격, 코딩테스트 합격',
  `created_at` timestamp
);

CREATE TABLE `company` (
  `company_id` integer PRIMARY KEY,
  `name` varchar(255)
);

CREATE TABLE `recruit` (
  `recruit_id` integer PRIMARY KEY,
  `title` varchar(255) COMMENT '2023 상반기 신입 공채, 2023 하반기 채용연계형 인턴',
  `start_date` date,
  `end_date` date,
  `company_id` integer
);

CREATE TABLE `progress` (
  `progress_id` integer PRIMARY KEY,
  `title` varchar(255) COMMENT '필기시험, 코딩테스트, 1차 면접, 임원 면접',
  `start_date` date,
  `end_date` date,
  `recruit_id` integer
);

CREATE TABLE `resume` (
  `resume_id` integer PRIMARY KEY,
  `applicant_id` integer,
  `recruit_id` integer,
  `question1` varchar(255) COMMENT '1. 지원 동기',
  `question2` varchar(255) COMMENT '2. 직무 역량',
  `question3` varchar(255) COMMENT '3. 입사 후 포부'
);

ALTER TABLE `apply` ADD FOREIGN KEY (`applicant_id`) REFERENCES `applicant` (`applicant_id`);

ALTER TABLE `recruit` ADD FOREIGN KEY (`company_id`) REFERENCES `company` (`company_id`);

ALTER TABLE `progress` ADD FOREIGN KEY (`recruit_id`) REFERENCES `recruit` (`recruit_id`);

ALTER TABLE `apply` ADD FOREIGN KEY (`recruit_id`) REFERENCES `recruit` (`recruit_id`);

ALTER TABLE `resume` ADD FOREIGN KEY (`applicant_id`) REFERENCES `applicant` (`applicant_id`);

ALTER TABLE `resume` ADD FOREIGN KEY (`recruit_id`) REFERENCES `recruit` (`recruit_id`);

ALTER TABLE `apply` ADD FOREIGN KEY (`resume_id`) REFERENCES `resume` (`resume_id`);

'Database' 카테고리의 다른 글

Windows에서 MySQL 설치 및 삭제하기  (0) 2023.11.28