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로 설정한다.
Employees의 address에 entity Addresses의 ID와 연결하여,
즉 각 entity 간에 JOIN을 수행할 수 있도록
address_ID라는 address의 별칭을 지정해 참조할 수 있도록 한다.
address_ID는 Integer로 선언한다.
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에서 members에 user를 key로 사용하고 entity Users와 연결한다.
members의 Composition of는 외래키 user로 JOIN된 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 |