학습 주제
SQL을 사용해 ERD 설계하기
정규화
SQL 종류
새롭게 배운 내용
SQL을 사용해 ERD 설계하기
CREATE TABLE user (
id int PRIMARY KEY AUTO_INCREMENT NOT NULL,
name varchar(255) NOT NULL,
email varchar(255) NOT NULL
);
CREATE TABLE content (
id int PRIMARY KEY AUTO_INCREMENT NOT NULL,
title varchar(255) NOT NULL,
body varchar(255) NOT NULL,
created_at timestamp default CURRENT_TIMESTAMP DEFAULT_GENRATED NOT NULL,
userId int NOT NULL,
FOREIGN KEY (userId) REFERENCES user(id)
);
추가 요구 조건
CREATE TABLE user (
id int PRIMARY KEY AUTO_INCREMENT NOT NULL,
name varchar(255) NOT NULL,
email varchar(255) NOT NULL,
roleId int,
FOREIGN KEY (roleId) REFERENCES role(id)
);
CREATE TABLE content (
id int PRIMARY KEY AUTO_INCREMENT NOT NULL,
title varchar(255) NOT NULL,
body varchar(255) NOT NULL,
created_at timestamp default CURRENT_TIMESTAMP DEFAULT_GENRATED NOT NULL,
userId int NOT NULL,
FOREIGN KEY (userId) REFERENCES user(id)
);
CREATE TABLE category (
id int PRIMARY KEY AUTO_INCREMENT NOT NULL,
name varchar(255) NOT NULL
);
CREATE TABLE content_category (
id int PRIMARY KEY AUTO_INCREMENT NOT NULL,
contentId int NOT NULL,
FOREIGN KEY (contentId) REFERENCES content(id),
categoryId int NOT NULL,
FOREIGN KEY (categoryId) REFERENCES category(id)
);
CREATE TABLE role (
id int PRIMARY KEY AUTO_INCREMENT NOT NULL,
name varchar(255) NOT NULL
);
🌕 인스타그램 post 테이블: ID와 게시물 ID을 둔다
고유 인덱스 번호를 따로 부여해서 이를 PK 지정하는 것이 검색 성능에 좋다
🌕 이미지를 표시하는 경우에 어떤 타입을 사용하는 게 좋을까?
- varchar, text: URL?
- blob: 0과 1로 이루어진 거대 데이터
- 관계형 데이터 안에서는 메가 데이터만 되어도 거대 데이터라고 한다
- 현업에서는 데이터 파일 서버를 따로 두고 그 링크를 가지고 오는 것이 바람직하다 입출력 시간, 효율성 면에서 좋다
- MSA에 대해 찾아보기
2022.08.08 - [Back-End/Database] - 정규화(Normalization)
보강할 내용
✅ MSA
✅ 정규화, 비정규화
✅ 서브 쿼리
https://school.programmers.co.kr/learn/challenges?tab=sql_practice_kit
회고
-
★★★☆☆
'Etc > BootCamp : TIL' 카테고리의 다른 글
[Day 49] Spring Framework Ⅱ (0) | 2022.08.10 |
---|---|
[Day 48] Spring Framework (0) | 2022.08.09 |
[Day 44] 관계형 데이터베이스 - 설계 (0) | 2022.08.05 |
[Day 43] 관계형 데이터베이스 - SQL (0) | 2022.08.04 |
[Day 42] [네트워크] HTTP (0) | 2022.08.03 |
댓글