728x90
[개념은 호옹~, 실습 빡]
SQL 데이터 분석, 활용!
참고사이트:
일대일, 다대다 관계
일대일, 다대다 관계. 무엇?
일대일 관계:
일대일로 데이터가 연결된 것
양방향에서 1대1로 연결되는 것
FK의 위치:
범위가 더 작거나
사용빈도가 더 적은쪽에
FK 를 준다
다대다 관계:
두 데이터 연결이
다수와 다수로 이어지는 것
양방향으로 다수와 다수로 연결되는 것
쇼핑몰에서 여러 고객이 있고
다양한 상품이 있으면
고객은 다양한 상품을 주문할 수 있고
상품 또한 다양한 고객에게
주문될 수 있다
실제 구현 시,
중간 테이블을 놓고
FK를 둬서 양 측을 연결한다
인스타그램을 예시로 들면
좋아요가 중간테이블이고
양 측으로 사용자와 사진이
다대다 연결되는 것
인스타그램 DB #4
인스타그램 유저 설정을 일대일관계로
좋아요 테이블을
다대다 관계로 만들기
설정 테이블 만들기
ID 를 PK
USER_ID 를 FK
로 만들어서
USERS 테이블의 ID 에 연결
(일대일 연결)
PRIVATE 는 참/거짓
체크 ON / OFF라서
BOOLEAN 타입을 써준다
ADDING_PHOTOS 는 VARCHAR
즉, 문자로 넣어준다
USER_ID 는 FK로서
FK 는 개인설정유저를 가리킴
1 대 1 로 연결
※근데 UNIQUE 라는 설정을 추가해준다※
UNIQUE 를 넣어주지 않으면
1 대 1 연결이 아니라
多 대 1 연결이 된다
-- settings 테이블 생성
CREATE TABLE settings (
id SERIAL PRIMARY KEY, -- PK
private BOOLEAN, -- true/false
adding_photos VARCHAR(15), -- AUTO, MANUAL
user_id INTEGER UNIQUE REFERENCES users(id) -- FK: 개인설정 유저(1:1 연결)
);
-- settings 레코드 등록
INSERT INTO
settings(private, adding_photos, user_id)
VALUES
(FALSE, 'MANUAL', 1), -- 유저#1
(FALSE, 'AUTO', 2), -- 유저#2
(TRUE, 'AUTO', 3) -- 유저#3
;
세팅 레코드 생성해준다
인스타그램 DB #5
-좋아요 테이블 만들기-
하나의 유저는 여러개의 좋아요 가능
하나의 사진에는 여러개의
좋아요가 달릴 수 있는 것
LIKE 테이블을 통해서
多 대 多 관계
LIKE 테이블 생성
LIKES 레코드 생성
일대일, 다대다 관계 요약
728x90
'> 프로그래밍 언어 > SQL' 카테고리의 다른 글
[SQL 데이터 분석, 활용!] 섹션 6. 그룹화의 집계 (2) | 2023.02.16 |
---|---|
[SQL 데이터 분석, 활용!] 섹션 4. 테이블 조인 (0) | 2023.02.14 |
[SQL 데이터 분석, 활용!] 섹션 1. 일대다 관계 (0) | 2023.02.13 |
[SQL 데이터 분석, 입문!] 섹션 3. 시간 값 필터링 (0) | 2023.02.10 |
[SQL 데이터 분석, 입문!] 섹션 2. 집계 함수 (0) | 2023.02.09 |