2016-10-17 7 views
0

두 엔티티 "CAR"및 "COLOR"가 있습니다.CoreData Swift 3 - 두 엔티티에 가입하는 방법?

"색"에는 두 가지 특성이 있습니다.

  1. ID
  2. 이름 "CAR"에서

나는 세 가지 속성이 있습니다.

  1. ID
  2. colourId "CAR"colourId에 관련된 "COLOR"의
  3. carName

ID.

누구나 한 가지 색으로 자동차 배열을 생성하기위한 술어를 쓸 수 있도록 도와 주시겠습니까?

+2

'COLOUR'과'CAR' 사이에'관계'를 만들어야합니다. 'colourID' 만 추가하지 마십시오. 그렇지 않으면 주어진 COLOUR로부터 COLOR-id를 얻고 COLOR-id로부터'CAR'을 얻으려면 먼저 두 개의 질의가 필요할 것이다. –

답변

6

하지 마십시오. 외래 키 사용은 데이터베이스에서 수행하는 작업입니다. CoreData는 데이터베이스가 아닙니다.

데이터 모델에서 "color"라는 자동차의 관계를 만들고 해당 유형을 color으로 설정합니다.

그런 다음 색에서 cars이라는 "많은"관계를 만들고 그 유형을 car으로 설정하십시오.

이제 색 대상을 포함 할 color이라는 속성이 Car이라는 속성이 있습니다.

Color의 속성은 해당 색을 가진 Cars의 집합이 될 cars이라고합니다.

+0

좋아, 어떻게 관계를 가져 오기위한 가져 오기 술어를 쓸 것인가? –

+0

@DevidasMDas 필요가 없습니다. 'car'를 가져 와서 색상을 얻으려면 ...'car.color'. 또는 특정 색상의 모든 자동차를 가져 오려면'color'를 얻고'color.cars'를 사용하십시오. ** 아무 것도 ** 가입 할 필요가 없습니다. 관계 속성을 사용하기 만하면됩니다. – Fogmeister

+0

@DevidasMDas 당신은'Car'에 대한 인출 술어를 이와 같이 만들 수도 있습니다 ... 예를 들어'color.id == 1'. 이것은'color' 속성이'id' 속성이 1 인 모든 자동차를 가져옵니다. 아니면'color.name == "blue"'그리고 이것은 똑같이 할 것입니다. – Fogmeister