Search

35. 스프링부트 포토그램 구독하기 연관관계 개념

포토그램 구독하기 API 구현하기

연관관계 개념

1. FK는 Many가 가져가야 한다.

한명의 유저는 여러개를 쓸 수 있어서 N개
한개의 게시글은 한명만 쓸 수 있어서 1
N : 1 의 관계라 한다.
Board 입장에서 봤을 때는 Many To One
User 입장에서 봤을 때는 One To Many 라고 한다
유저 테이블에 ssar 유저가 쓴 게시글 1번 2번 게시글을 한꺼번에 넣어서 저장할수는 없다.(하나의 데이터만 들어가야한다) 이런 경우를 원자성이 깨졌다고 한다.
FK는 Many쪽에서 가져가야한다 (공식)

2. N : N의 관계는 중간 테이블이 생긴다.

한명이 여러개의 영화를 볼 수 있다. 1: N
하나의 영화는 여러명이 볼 수 있다 N : 1
이 둘의 관계는 N : N
1번 유저가 어벤져스, 배트맨 둘다 본 걸로 하면 넣으면 원자성이 깨지고
어벤져스영화를 1,2번 유저가 볼 걸 한꺼번에 처리하면 원자성이 깨진다.
그래서 N : N 테이블에서는 중간 테이블이 생기게 된다.
유저와 중간테이블의 관계는
한명의 유저는 여러번 예매할 수 있다 1 : N
하나의 예매 자체는 한명밖에 못한다. 1 : 1
중간테이블과 영화의 관계는
하나의 영화는 여러명이 예매 할 수 있다. N : 1
하나의 예매는 여러가지 영화를 예매 못한다. 1 : 1
1 : N / 1 : N 의 관계가 된다
N : N의 관계는 중간 테이블이 생기는데 이때 중간테이블이 N: 1 : N에서 1 이다.

구독하기 테이블

이제 2가지 공식을 잡고 구독하기 테이블 관계를 잡아본다.
한명의 유저가 여러명의 유저를 구독할 수 있다 1 : N
한명의 유저는 여러명에게 구독받을 수 있다 N : 1
N : N 테이블은 중간테이블이 있어야 한다.
구독 테이블을 중간테이블로 생성하고
N의 관계를 가진 구독하기 테이블이 FK를 가져간다.

*참고