1. 요구 사항 분석

요구 사항 설계

2. 개념적 설계

개체 속성
관리자 manager_id(관리자 아이디), id(아이디), password(비밀번호)
사용자 number(사용자 아이디), user_id(아이디), user_password(비밀번호), department(담당부서), user_name(담당자 이름), user_number(담당자 연락처)
기간제 인력 term_id(기간제 인력 아이디), name(이름), birthdate(생년월일), address(주소), first_tenure(입사일), last_tenure(퇴사일), occupation(직종), issuing_department(발급부서), user_name(담당자 이름), user_number(담당자 연락처)
부서 목록 불러오기 department_id(부서 아이디), department(담당부서)

관계 추출

관계 관계에 참여하는 개체 관계 유형 관계 속성
사용자 기간제 인력 입력 (user_term_create) 사용자, 기간제 인력 1 : N 기간제 인력 속성
사용자 부서 입력 (user_department_create) 사용자, 부서 목록 불러오기 1 : 1 number, department_id, department

3. 논리적 설계

개체 속성
관리자 manager_id(관리자 아이디), id(아이디), password(비밀번호)
사용자 number(사용자 아이디), user_id(아이디), user_password(비밀번호), department(담당부서), user_name(담당자 이름), user_number(담당자 연락처)
기간제 인력 term_id(기간제 인력 아이디), name(이름), birthdate(생년월일), address(주소), first_tenure(입사일), last_tenure(퇴사일), occupation(직종), issuing_department(발급부서), user_name(담당자 이름), user_number(담당자 연락처)
부서 목록 불러오기 department_id(부서 아이디), department(담당부서)
개체 속성
관리자 manager_id(관리자 아이디), id(아이디), password(비밀번호)
사용자 number(사용자 아이디), user_id(아이디), user_password(비밀번호), department(담당부서), user_name(담당자 이름), user_number(담당자 연락처)
기간제 인력 term_id(기간제 인력 아이디), number(사용자 아이디), name(이름), birthdate(생년월일), address(주소), first_tenure(입사일), last_tenure(퇴사일), occupation(직종), issuing_department(발급부서), user_name(담당자 이름), user_number(담당자 연락처),
아이디
부서 목록 불러오기 department_id(부서 아이디), number(사용자 아이디), department(담당부서)

물리적 설계 및 구현

DDL

//관리자
CREATE TABLE managers
(
	manager_id BIGINT PRIMARY KEY,
	id VARCHAR(255) NOT NULL UNIQUE,
	password VARCHAR(30) NOT NULL
);
//사용자
CREATE TABLE users
(
	number BIGINT PRIMARY KEY,
	user_id VARCHAR(255) NOT NULL UNIQUE,
	user_password VARCHAR(30) NOT NULL,
	department VARCHAR(255) NOT NULL,
	user_name VARCHAR(50) NOT NULL,
	user_number VARCHAR(20) NOT NULL
);
//기간제 인력
CREATE TABLE terms
(
	term_id BIGINT PRIMARY KEY,
	number BIGINT NOT NULL UNIQUE,
	name VARCHAR(50) NOT NULL,
	birthdate VARCHAR(255) NOT NULL,
	address VARCHAR(255) NOT NULL,
	first_tenure  VARCHAR(255) NOT NULL,
	last_tenure  VARCHAR(255) NOT NULL,
	issuing_department  VARCHAR(255) NOT NULL,
	user_name  VARCHAR(50) NOT NULL,
	user_number  VARCHAR(20) NOT NULL,
	occupation VARCHAR(255) NOT NULL,

	FOREIGN KEY (number) users(number)
);
CREATE TABLE departments
(
	department_id BIGINT PRIMARY KEY,
	number BIGINT NOT NULL UNIQUE,
	department VARCHAR(255) NOT NULL,

	FOREIGN KEY (number) users(number)
)