Notice
Recent Posts
Recent Comments
Link
«   2025/06   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Archives
Today
Total
관리 메뉴

눈덩이의 테크블로그

[9_1] 회사직원용 스케줄러/스케줄 관리 웹 DB 설계 (ERD cloud/mysql/mariaDB) 본문

TIL

[9_1] 회사직원용 스케줄러/스케줄 관리 웹 DB 설계 (ERD cloud/mysql/mariaDB)

nundung 2023. 11. 27. 22:10

모의외주로 회사내 직원용 스케줄러 웹을 만들어보자!!

 

 우선 데이터베이스 테이블을 짜주어야 한다. 내가 처음에 짰던 테이블은 account, schedule 이렇게 2개의 테이블 구성으로 짰었다. 하지만 이후 team테이블과 position테이블을 따로 만드는것이 좋다는 피드백을 받고 수정하였다.

 

CREATE TABLE `account` (
`idx` INT(12) NOT NULL AUTO_INCREMENT,
`id` VARCHAR(20) NOT NULL UNIQUE,
`pw` VARCHAR(20) NOT NULL,
`name` VARCHAR(20) NOT NULL,
`phonenumber` VARCHAR(15) NOT NULL UNIQUE,
`team` VARCHAR(10) NOT NULL,
`position` VARCHAR(10) NOT NULL,
PRIMARY KEY(idx)
);

CREATE TABLE `schedule` (
`idx` INT(12) NOT NULL AUTO_INCREMENT,
`date` DATE NOT NULL,
`time` TIME NOT NULL,
`title` VARCHAR(50) NOT NULL,
`account_idx` INT(12) NOT NULL,
PRIMARY KEY(idx),
FOREIGN KEY (account_idx) REFERENCES `account` (`idx`)
);

CREATE TABLE `team` (
`idx` INT(12) NOT NULL AUTO_INCREMENT,
`value` VARCHAR(30) NOT NULL,
PRIMARY KEY(`idx`)
);

CREATE TABLE `position` (
`idx` INT(12) NOT NULL AUTO_INCREMENT,
`value` VARCHAR(20) NOT NULL,
PRIMARY KEY(`idx`)
);

CREATE TABLE `account` (
`idx` INT(12) NOT NULL AUTO_INCREMENT,
`id` VARCHAR(20) NOT NULL UNIQUE,
`pw` VARCHAR(20) NOT NULL,
`name` VARCHAR(20) NOT NULL,
`phonenumber` VARCHAR(15) NOT NULL UNIQUE,
`team_idx` INT(12) NOT NULL,
`position_idx` INT(12) NOT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY(`idx`),
FOREIGN KEY (`team_idx`) REFERENCES `team` (`idx`),
FOREIGN KEY (`position_idx`) REFERENCES `position` (`idx`)
);

CREATE TABLE `schedule` (
`idx` INT(12) NOT NULL AUTO_INCREMENT,
`time` TIMESTAMP NOT NULL,
`title` VARCHAR(100) NOT NULL,
`account_idx` INT(12) NOT NULL,
`created_at` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY(`idx`),
FOREIGN KEY (`account_idx`) REFERENCES `account` (`idx`)
);