이번 강의는 SQL 제약 조건에 해당하는 내용을 배웠다.
먼저 각 컬럼들간의 제한 사항을 관리하는 것이 제약 조건 이라는 것인데,
조건을 위반하는 데이터 방지 및 무결성을 보장하는 규칙이다.
무결성이란 데이터가 결험 없이 정확하고 완전한 상태를 뜻하는데
또 다른 관계는 무엇이 있는지 궁금해져 찾아 봤다.
RDBMS 를 활용하면서 데이터를 효과적으로
구조화하고 조작하기 위한 여러가지 장점들이다.
나중에 ERD를 작성해 프로젝트를 진행할 때
잊지 않고 생각해보아야하는 관계라고 생각이 들었다.
SELECT p.postId, p.title, p.content, u.email
FROM Posts as p
JOIN Users as u
ON p.userId = u.userId;
이렇게 간결하게 표현을 해주는게
"alias" 컬럼 이름을 길게 가져가면 나쁜 냄새가 나는
코드가 작성되어 권장되지 않는다.
CREATE TABLE Publisher (
publisherId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
publisherName varchar(255) NOT NULL,
publisherAddress varchar(255) NOT NULL,
);
CREATE TABLE Books (
bookId int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY,
publisherId int(11) NOT NULL,
bookName varchar(255) NOT NULL,
FOREIGN KEY (publisherId) REFERENCES Publisher (publisherId)
);
부모테이블인 Publisher 테이블
자식테이블인 Books 테이블에
FOREIGN KEY 로 1:N 관계를 가지게
연관지어준 코드다.
FOREIGN KEY 에 제일 먼저 들어오는 ( )는 Books <<
즉, 현재 있는 곳에서 사용하는 publisherId 이며,
REFERENCES 뒤에 Publisher ( ) 는 부모에 있는
publisherId를 바라보게 된다.
publisherId를 Books에 하나 더
만들어 주는 이유는 여러개의 책을
출판사는 가질 수 있다라는 조건이 있기 때문에
해당하는 특정 컬럼을 만들어 준 것이다.
책은 어떤 출판사(Publisher)에 소속되어 있는지
알게하기 위해서 publisherId를 가지게 있게 된 것.
[TIL] 2024.01.26 JWT (1) | 2024.01.27 |
---|---|
[TIL] 2024.01.25 RAW-QUERY ORM Prisma (0) | 2024.01.26 |
[TIL] 2024.01.23 개인과제 코드 리뷰 (0) | 2024.01.23 |
[TIL] 2024.01.22 개인 과제 및 회고(수정) (0) | 2024.01.23 |
[TIL] 2024.01.19 ~ 2024.01.21 개인 과제 (0) | 2024.01.22 |