인프런 커뮤니티 질문&답변

이민석님의 프로필 이미지
이민석

작성한 질문수

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

typeorm 관계 설정하기

Identifying relation 과 non-identifying relation

작성

·

404

·

수정됨

0

안녕하세요! 보여주신 erd에서 궁금증이 생겨서 질문 드립니다.

dms의 ReciverId과 mentions의 Receiverid 만 Non-identifying relation으로 맺어져 있고 나머지 관계들은 모두 Identifying Relation으로 맺어져 있는 이유가 뭘까요?

Non-Identifying Relation과 Identifying Relation의 차이는 Non의 경우는 부모와 자식의 관계를 맺을때 자식이 부모 없이도 독립적으로 존재 가능한 것이고, Identifying-Relation은 자식이 부모 없이는 존재가 불가능한 차이로 알고 있습니다.

DM과 Mention의 Receiver가 존재하지 않는다면, DM과 Mention의 정보가 불완전해질 것 같은데, 왜 non-identifying 일까요?

typeorm entity 코드를 봐도, DM과 User entity의 Sender와 Receiver의 코드가 완전 똑같은데, 왜 ERD에서는 Receiver는 non-identifying 이고 Sender는 identifying인지 모르겠습니다.

답변 1

0

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

저는 erd에서 해당 기능을 사용하지 않습니다. 애초에 제가 그렇게 지정한 적도 없습니다.

이민석님의 프로필 이미지
이민석
질문자

마지막에 erdcloud 사진 보면, ReceiverId만 점선으로 이어져 있어서 여쭤봤습니다 ㅜㅜ

이민석님의 프로필 이미지
이민석
질문자

그러면, nest-typerorm 의 entity 코드만 보았을때, N:N relation만 join colunm들이 Primary : true로 되어있고, 나머지 relation에서는 join column들이 nullable : true로 되어있는데, N:N 관계만 identifying relation이고, 나머지 관계들은 non-identifying relation이라고 이해하면 될까요?

 

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

네 점선을 제가 의도하고 만든 게 아니라서요.

보통 남의 pk가 아닌 고유한 pk가 있으면 non-identifying이 맞습니다. M:N만 identifying입니다.

이민석님의 프로필 이미지
이민석
질문자

답변 감사합니다!!

이민석님의 프로필 이미지
이민석

작성한 질문수

질문하기