인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

Inflearn Community Q&A

ehdtodvodl4323's profile image
ehdtodvodl4323

asked

Slack Clone Coding [Backend with NestJS + TypeORM]

Setting up typeorm relationships

Identifying relation 과 non-identifying relation

Written on

·

448

·

Edited

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인지 모르겠습니다.

node.jsexpressnestjstypeorm

Answer 1

0

zerocho님의 프로필 이미지
zerocho
Instructor

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

ehdtodvodl4323님의 프로필 이미지
ehdtodvodl4323
Questioner

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

ehdtodvodl4323님의 프로필 이미지
ehdtodvodl4323
Questioner

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

 

zerocho님의 프로필 이미지
zerocho
Instructor

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

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

ehdtodvodl4323님의 프로필 이미지
ehdtodvodl4323
Questioner

답변 감사합니다!!

ehdtodvodl4323's profile image
ehdtodvodl4323

asked

Ask a question