본문 바로가기

안녕하세요!

프로그래밍 언어/CAP

[ CAP ] What is the 'Associations'?

Associations


 

Unmanaged Associations


 

entity Employees {
    address : Association to Addresses on address.ID = address_ID;
    address_ID : Integer; //> foreign key
}
entity Addresses {
	key ID : Integer;
}

 

entity Addresses에 있는 key ID를  Integer로 설정한다.

Employeesaddressentity Addresses의 ID와 연결하여,
각 entity 간에 JOIN을 수행할 수 있도록
address_ID라는 address의 별칭을 지정해 참조할 수 있도록 한다.

address_IDInteger로 선언한다. 

 

Managed(To-One) Associations


 

entity Employees {
	address : Association to Addresses;
}

 

일대일 연결의 경우 CDS는 대상의 기본키에서 필수 외래키 요소를 자동으로 해결 및 추가하고
각가의 JOIN 조건을 암시적으로 추가할 수 있게 된다.

반응형

To-many Associations


 

entity Employees {
    key ID : Integer;
    addresses : Association to many Addresses
    	on addresses.owner = $self;
}
entity Addresses {
	owner : Association to Employees; //> the backlink
}

 

entity Addresses에서 owner가 entity Employees에 연결시키고,
entity Employees에서도 addresses를 entity Adressses에 연결하고 있다.
이는 entity Employees에서 여러 개의 Addresses를 managed 하기 위함이다.

Many-to-many Associations


 

entity Teams {...
	members : Composition of many { key user : Association to Users; }
}

entity Users {...
	teams : Association to many Temas.members on teams.user = $self;
}

 

다대다 연결의 경우, 링크 entity를 사용해
둘 다 연결하는 두 개의 일대다 연결로 논리적 다대다 관계를 만든다.

entity Teams에서 membersuserkey로 사용하고 entity Users와 연결한다.
membersComposition of는 외래키 userJOIN된 entity Users 정보들로 구성됨을 의미한다.

 

728x90
반응형

'프로그래밍 언어 > CAP' 카테고리의 다른 글

[ CAP ] Views and Projections  (2) 2023.04.12
[ CAP ] Temporal Database  (0) 2023.04.10
[ CAP ] What is the 'CSV'?  (0) 2023.04.04
[ CAP ] What is the '@sap/cds/common'?  (4) 2023.03.31

loading