mondegreen

[Mendix Docs] Domain model - Association 본문

Mendix/Academy 및 Docs

[Mendix Docs] Domain model - Association

앙갱 2024. 6. 18. 23:42
반응형

Association

엔티티간 연관관계는 일대일, 일대다, 다대다로 설정될 수 있다. 이 관계에 따라 Type과 Ownership이 달라질 수 있다. 비영속성 엔티티와 영속성 엔티티가 존재할 경우 연관관계는 비영속성에서 영속성 엔티티로 연결되어야 한다.

연관관계에서 Type

엔티티가 일대다, 일대일의 연관관계를 갖는 경우, Type은 Reference로 설정된다. 그외의 다대다의 연관관계를 갖는 경우Type은 Reference set으로 설정된다. 반대로 이 Type을 변경할 경우 연관관계 설정도 변경된다.

연관관계에서 Owner란,

연관관계에서 Owner가 존재하는 이유는, 엔티티 간의 설정된 연관관계가 초기 설정과 다르게 변경될 경우 데이터베이스를 다시 빌드하지 않고 연관관계를 동적으로 쉽게 변경하기 위해 존재한다. 여기서 말하는 Ownership은 두 엔티티 간의 연관관계를 소유한다는 의미이다. (스키마 재설정하면 기존에 누적했던 데이터가 삭제되는 상황에서 재 빌드 하지 않으려고 있는 기능이라고 추정)

설정되는 케이스를 보자면 일대일의 관계는 양쪽 엔티티 모두 소유권을 갖게 되어 Owner에 Both라고 설정한다. 이 때 연관관계는 두 엔티티 간의 실선으로 표시된다.

일대다 관계의 경우 ‘다’에 해당되는 엔티티가 소유권을 갖게 되고 Default로 설정된다. 이 때 엔티티 간의 화살표는 ‘다’의 엔티티에서 ‘일’의 엔티티 방향으로 뻗어나간다.

다대다의 연관관계를 가질 경우, 기본적으로 개발자가 연관관계를 그리기 시작한 엔티티가 소유권을 가지게 되지만, 필요한 경우 두 엔티티 모두 소유권을 갖도록 Both로 설정할 수 있다. 다대다의 경우 연관관계 중 두 엔티티가 모두 소유권을 가진 경우 두 엔티티간의 실선으로 표시되고 한 쪽 엔티티만 소유권을 가진 경우 소유권을 가진 엔티티에서 화살표가 시작된다.

참고로 이러한 소유권 설정은 XML으로 표현한 도메인모델에서 더욱 두드러지는데 엔티티가 표현된 XML 파일을 보면 소유권이 있는 엔티티쪽에 연관관계가 표시되어 있다.

연관관계 소유권이 있는 쪽에서만 상대편의 엔티티에 접근하지 못하는 경우가 있다.

1. 일대다 연관관계 (소유권이 ‘다’ 엔티티에 있음)

2. 다대다 연관관계이나 한 엔티티가 소유권을 가진 경우

3. 다대다 연관관계이나 두 엔티티가 모두 소유권을 가진 경우

4. 일대일 연관관계(두 엔티티 모두 소유권 가짐)

반응형