mondegreen

[Mendix Docs] Domain model - Entity 본문

Mendix/Academy 및 Docs

[Mendix Docs] Domain model - Entity

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

엔티티란

엔티티를 생성할 때 개발자가 정의하는 속성이 있다. 일반적으로 직접 모델을 설계하고 DB 스키마를 작업하며 key값이 되는 id field를 생성하기 마련인데, 멘딕스에는 별도로 생성하지 않고 있다. 이는 멘딕스가 개발자가 정의한 속성에서 System 속성(생성, 변경, owner, 변경주체)과 개체 식별자 속성을 자동으로 부여하기 때문이다. 따라서 우리가 단 한 개의 속성만 생성했다 할지라도 아래와 같이 다양한 필드를 가질 수 있는 것이다. 단, System 속성의 경우, 선택 여부에 따라 부여된다.

엔티티의 종류

영속성 엔티티(파란색), 비영속성 엔티티(주황색), 외부 엔티티(보라색) 이 존재한다. 비영속성 엔티티는 런타임 메모리에 저장되며 데이터베이스에 커밋되지 않는다. 다른 애플리케이션의 데이터 소스를 활용하는 경우 외부 엔티티이다.

엔티티와 일반화(feat. OOP에서의 상속)

엔티티에서 일반화한다는 표현이 나오는데 이는 객체지향 프로그래밍에서 상속과 유사한 것이라고 생각하면 좋을 것 같다. 예를 들어 차량이라는 Vehicle 엔티티가 존재하고 자가용이라는 Car엔티티가 존재할 때, Vehicle의 속성, 연관관계, 이벤트 등을 Car가 모두 가지고 있을 때, Car는 Vehicle을 상속받았다고 할 수 있고, 멘딕스에서의 표현으로 “Car 엔티티는 일반화로 Vehicle을 가질 수 있다.”라고 한다.

보다 구체적인 예로서 만약 Car 엔티티를 검색하면 Car 엔티티만 결과로 반환되고, Vehicle 엔티티를 검색하면 Vehicle과 Car 모두 결과로 반환된다. 왜냐면 Car 역시 Vehicle의 속성과 이벤트 연관관계를 모두 가지고 있기 때문이다.

엔티티에서 Store Owner란,

이는 연관관계에서의 owner와는 다른 개념으로 해당 엔티티가 System 모듈의 엔티티 중 하나인 User 엔티티와 연결될 것인지를 결정하는 부분이다.

반응형