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
관리 메뉴

눈덩이의 테크블로그

[7_1] 테이블(칼럼명,날짜 시간 타입)수정하기 본문

mySQL

[7_1] 테이블(칼럼명,날짜 시간 타입)수정하기

nundung 2023. 11. 1. 16:55
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