눈덩이의 테크블로그
[7_1] 테이블(칼럼명,날짜 시간 타입)수정하기 본문
CREATE TABLE `account` (
`account_id` INT(12) NOT NULL AUTO_INCREMENT,
`user_name` VARCHAR(20) NOT NULL,
`user_id` VARCHAR(20) NOT NULL,
`password` VARCHAR(20) NOT NULL,
`email` VARCHAR(24) NOT NULL UNIQUE,
`phonenumber` INT(14) NOT NULL UNIQUE,
`account_created_date` DATETIME NOT NULL,
PRIMARY KEY (account_id)
);
CREATE TABLE `post` (
`post_id` INT(12) NOT NULL AUTO_INCREMENT,
`account_id` INT(12) NOT NULL,
`post_title` VARCHAR(100) NOT NULL,
`post_created_date` DATETIME NOT NULL,
`modified_date` DATETIME NULL,
`post_content` VARCHAR(1000) NOT NULL,
PRIMARY KEY (post_id),
FOREIGN KEY (account_id) REFERENCES `account` (`account_id`)
);
CREATE TABLE `comment` (
`comment_id` INT(12) NOT NULL AUTO_INCREMENT,
`post_id` INT(12) NOT NULL,
`account_id` INT(12) NOT NULL,
`comment_created_date` DATETIME NOT NULL,
`comment_modified_date` DATETIME NULL,
`comment_content` VARCHAR(500) NOT NULL,
PRIMARY KEY (comment_id),
FOREIGN KEY (account_id) REFERENCES `account` (`account_id`),
FOREIGN KEY (post_id) REFERENCES `post` (`post_id`)
);
나는 전 시간에 이렇게 테이블을 만들었는데 팀장님에게 피드백을 받고 이렇게 수정했다.
-수정한 부분
1. pk 이름을 'account_id' 에서 'idx'로 바꿨다.
2. 테이블에 종속된 칼럼등도 'account_머시기' 에서 '머시기' 이런식으로 바꾸었다.
3. 'account' 테이블에 'birth' 칼럼을 추가했다.
4. DATETIME을 TIMESTAMP로 바꿔주었다.
ㄴ DATETIME은 string으로 저장 됨, TIMESTAMP는 integer로 저장이 되어서 수정이 용이함.
그래서 'birth'처럼 고정되어 있는 날짜 말고 created_date'나 'modified_date' 같이 바뀔 수 있는 날짜는 TIMESTAMP 형태로 바꾸어 주었다.
CREATE TABLE `account` (
`idx` INT(12) NOT NULL AUTO_INCREMENT,
`name` VARCHAR(20) NOT NULL,
`id` VARCHAR(20) NOT NULL UNIQUE,
`pw` VARCHAR(20) NOT NULL,
`email` VARCHAR(24) NOT NULL UNIQUE,
`phonenumber` VARCHAR(15) NOT NULL UNIQUE,
`created_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`birth` DATETIME NOT NULL,
PRIMARY KEY(idx)
);
CREATE TABLE `post` (
`idx` INT(12) NOT NULL AUTO_INCREMENT,
`account_idx` INT(12) NOT NULL,
`title` VARCHAR(100) NOT NULL,
`created_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modified_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
`content` VARCHAR(1000) NOT NULL,
PRIMARY KEY (idx),
FOREIGN KEY (account_idx) REFERENCES `account` (`idx`)
);
CREATE TABLE `comment` (
`idx` INT(12) NOT NULL AUTO_INCREMENT,
`post_idx` INT(12) NOT NULL,
`account_idx` INT(12) NOT NULL,
`created_date` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
`modified_date` TIMESTAMP NULL DEFAULT CURRENT_TIMESTAMP,
`content` VARCHAR(500) NOT NULL,
PRIMARY KEY (idx),
FOREIGN KEY (post_idx) REFERENCES `post` (`idx`),
FOREIGN KEY (account_idx) REFERENCES `account` (`idx`)
);
나는 아예 새로운 db를 만들어서 수정한 코드를 넣어주었다. 굳
끝까지 읽어주셔서 감사합니다.
'mySQL' 카테고리의 다른 글
[6_5] Database 정규화(Normalization) (0) | 2023.10.25 |
---|