작성
·
27
0
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.
1. 강의 내용과 관련된 질문을 남겨주세요.
2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.
(자주 하는 질문 링크: https://bit.ly/3fX6ygx)
3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.
(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.
=========================================
[질문 템플릿]
1. 강의 내용과 관련된 질문인가요? (예/아니오)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)
[질문 내용]
casacade 사용시 주의할 점으로 특정 엔티티가 개인소유하는 자식일 경우에만 쓰는게 좋다 라고 말씀하셨는데, 여기서 특정 엔티티라는것이 엔티티의 구분을 말씀하시는건지 아니면 하나의 레코드를 말씀하시는건지 헷갈립니다.
아마 특정 레코드를 말씀하신것 같은데,
멤버와 페런트 엔티티가 child라는 같은 엔티티를 참조 한다고하지만, 결국에는 멤버와 페런트가 각각 개인의 child 레코드만을 참조한다면 문제가 없을것 같은데 맞을까요? 같은 레코드를 참조하는게 아니니까요!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. RealTake님.
캐스케이드(Cascade)의 사용 시 주의할 점에 대해 문의 주셨군요. 질문의 핵심은 개인 소유하는 자식
에 대한 개념이 정확히 무엇인지 이해하는 데 있다고 생각합니다.
캐스케이드 기능은 부모 엔티티의 상태 변경(저장, 삭제 등)을 관련 자식 엔티티로 전파시키는 데 유용합니다. 이 기능은 부모가 자식의 전체적으로 관리 책임을 지는 상황에서 주로 적용됩니다.
특정 엔티티가 개인소유하는 자식일 경우란:
1. 엔티티 구분: 일반적으로 엔티티는 데이터베이스 테이블로 표현되는 객체입니다. 이 때, ‘개인 소유’라는 말은 특정 부모 엔티티가 해당 자식을 독점적으로 관리하거나 소유하는 상황을 말합니다.
질문에서 언급한 상황:
- 개인 소유의 자식: 멤버와 페런트가 각각 독립적으로 child 엔티티의 특정 레코드를 참조하고 있다면, 잘 구성된 모델입니다. 이 경우 부모가 자신만의 자식을 관리, 소유한다고 볼 수 있습니다.
질문에 관한 참고 링크도 확인해보세요:
- CASCADE
이 질문에서는 연관관계의 주인과 CASCADE 설정의 의미를 자세히 다루고 있습니다.
요약하면, 부모가 자식을 독점적으로 소유하는 상황에서는 Cascade 옵션을 사용해도 무방하나, 여러 부모가 동일한 자식을 공유하는 구조에서는 예상치 못한 부작용이 발생할 수 있으므로 주의가 필요합니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.