참고 블로그
프로젝트 API 명세 후 ERD를 작성하며 모르는게 생겼다.
선택적 참여..? 필수적 참여..?
이 두 개념은 뭘까?
내가 만든 ERD다.
나는 필수적 참여를 쓰고 있다.
근데 선택적 참여와 필수적 참여의 개념을 모르고 작성 했던 것이라, 앞으로의 있을 협업들을 위해 이런 개념은 머릿속에 넣어둬야한다.
알기 쉬운 선택적 참여와 필수적 참여
필수적 참여는 외래키(FK)가 NOT NULL 으로 절대 비워져서는 안 되고
선택적 참여는 외래키(FK)가 NULL 으로 되어 있어도 별 문제 안 되는 것이다.
필수적 참여
만약 내가 네이버 카페 ERD를 작성한다고 하자.
네이버 카페는 로그인을 해야만 글을 쓸 수 있다
즉 SQL에 글 테이블에서 참조하는 User의 외래키가 절대 NULL 값이 될 수 없는 구조다
이런 경우 사진처럼 필수적 참여를 표시해준다.
선택적 참여
근데 만약 네이버 카페에서 로그인 사용자와 비로그인 사용자를 위한 카페 기능을 추가했다고 하자
비로그인 사용자가 글을 쓰면 익명으로 뜨고
로그인 사용자가 글을 쓰면 사용자 고유 번호를 사용해서 글의 작성자를 표시해준다.
이 경우 카페 게시글 테이블에는 사용자 고유 번호 외래키가 NULL 값이 들어가도 된다.
익명 기능 추가로 사용자의 고유 번호가 없어도 글을 쓸 수 있기 때문이다.
이런 경우 이렇게 표시해준다.
이해가 확 되지 않는가?!?!
'TIL' 카테고리의 다른 글
TIL 2023-11-16 RestTemplate 짧은 설명 (1) | 2023.11.16 |
---|---|
TIL 2023-11-15 JWT 검증 과정에서 일어나는 문제 해결 과정 (1) | 2023.11.15 |
TIL 2023-11-13 Session과 JWT 뭐가 더 좋을까? (2) | 2023.11.13 |
TIL 2023-11-10 HttpServlet 및 쿠키 처리 (0) | 2023.11.10 |
TIL 2023-11-09 nullable = false 설정 했는데도 빈 값이 들어갈 때 (0) | 2023.11.09 |