0

enter image description hereCoreData - 일대 다 관계 - 데이터 모델

여기가 내 핵심 데이터 구조입니다. 나는 세 개의 엔티티가 RoomKeyKeyRoomMap입니다. 이제 RoomKey에 두 가지 속성이 있습니다. 나는 그들 둘다의 ID 속성이 세 번째 테이블 KeyRoomMap과 연관되어야하고 KeyRoomMap에 하나의 요소 SuggestedTestPlan이 더 있어야합니다. 여기에 SQL 테이블 -

내 질문은이 같은 구조입니다

  1. 있습니다. 하지만 핵심 데이터에서 잘못된 구조 인 이라고 생각합니다. keyIDroomID 에 KeyRoomMap과 어떤 관계가 있습니다. 에 keyID와 roomID를 추가하면 어떻게 자동으로 추가해야합니까? KeyRoomMap?
  2. 각 객실마다 더 많은 키가 있습니다. 그래서 key1, key2는 room1에 , room2에는 key3, room3에는 key4, key5, key6이 있습니다 .3 어떻게 이러한 관계를 만들 수 있습니까?

----------------------- 편집 및 추가

사실 내 혼란은 키 1과 키 2가 들어 Booth과 관련된 경우로 시작 . 나는 그들과 일대일 관계를 맺을 수있다. 그러나 key1과 key2가 Room1과 연관되어 있다고 말하는 keyroomMap 엔티티가 정의되었습니다. 만약 내가이 테이블을 만들지 않는다면, 많은 키들의 관계를 토대로해서 어떻게해야합니까?

답변

1

실제로 SQL 테이블처럼 계획하고있는 것처럼 보입니다.

  • 방 많은 키

을 가질 수
  • 키가 한 방

그러므로 내가 잠금을 해제 할 수 있습니다 :처럼 설명에서

는 소리가 난다 너의 방 실체에 관계가 있다고 말할거야. 열쇠가되고 이것은 대다 관계입니다. 핵심 데이터에서 역 엔티티를 설정해야하므로 Key 엔티티의 해당 관계가 공간이되며 일대일 관계가됩니다.

데이터 모델 다이어그램을 아래 이미지로 포함 시켰습니다. 나는 당신의 목적은 KeyRoomMap을 위해 무엇인지 정말 모르겠어요

Room - Key Model

? 그 suggestTestPlan 속성이 Key 또는 Room에 대신 존재할 수 있습니까? KeyRoomMap 엔티티는 존재하는 KeyRoomMap에 대해 두 개의 관계가있는 Room과 Key를 모두 가져야한다는 점에서 두 개의 관계가있는 것처럼 보입니다. 나는 가능한 다이어그램을 포함 시켰지만 더 많은 정보가 없으면 나는 확신 할 수 없다. 그렇지 않으면 suggestedTestPlan 다른 엔티티에 기초하여 유도 또는 계산 될 수있는 속성입니다 : EDIT

Room - Key - RoomKeyMap Model

? 즉. 가져온 속성 https://developer.apple.com/library/ios/documentation/Cocoa/Conceptual/CoreData/Articles/cdRelationships.html#//apple_ref/doc/uid/TP40001857-SW7

+0

안녕하세요 Daniel 답장을 보내 주셔서 감사합니다.하지만 정말이 식별자와 같은 속성이 필요하다고 생각 했습니까? 왜냐하면 내가 roomID와 locationID를 내 핵심 데이터의 기본 키로 사용했기 때문에, 내가 관계에 참여하면 어떤 ID도 필요하지 않을 것이다. 권리 ? –

+0

네 맞습니다. 나는 그 식별자가 데이터베이스 id (즉, 호텔 방 식별자 409)보다는 당신의 방에 특정한 것으로 가정했다. 그렇지 않은 경우에는 관계를 통해 액세스 할 수 있습니다. self.room.keys는 그 방의 열쇠 세트를 줄 것입니다. 또는 키가 있다면 self.key.room은 해당 방을 줄 것입니다. –

+0

또한 Xcode 모델 생성기를 사용하는 경우 모델 클래스의 메서드를 만들어 개체를 추가하고 제거합니다. Xcode> 편집기> Create NSManagedObject Subclass를 선택합니다. addKeyObject : (Key *) value;와 같은 메소드를 사용하면 Room.h와 Room.m이 생성됩니다. 및 addKeys : (NSSet *) 값; –