2016-05-22 25 views
0

スウィフトは、Javaと.NETから来ています。コアデータを使用して小さなアプリケーションを作成したいのですが、私は2つのテーブルを持っています。スウィフト - コアデータの1対多リレーションシップ

enter image description here

関係:

enter image description here

をし、医師、診療所が1人のまたは複数の医師を持つことができるので、私は多くの関係に1を必要とするところ、これは私がこれまで何をやったかであります

enter image description here

私は、DoctorIdとClinicIdをClinicテーブルのインデックスとして、DoctorIdをDoctorテーブルに追加しました。私の質問は、この時点でスウィフトに、関係はClinic.doctorId == Doctor.doctorIdであり、Clinicテーブルには複数の医師がいることを伝えていますか?スウィフトにどの属性をリンクとして使うかを教えてくれる場所が見えます。何か不足していますか?私はあなたの指導に感謝します。

よろしくお願いいたします。

答えて

0

他の属性を使用して関係を割り当てることはありません。関係は他の項目とは別に存在します。また、あなたの関係の名前は後方にあります - クリニックでは、それはdoctorsと命名され、ドクターではでなければなりません。関係を割り当てるには、次のようにします。

let doctorOne = Doctor(...) 
let doctorTwo = Doctor(...) 
let clinic = Clinic(...) 
//assign either way - first way is more logical and makes more sense (especially as Core Data relationships are default optional) 
doctorOne.clinic = clinic 
doctorTwo.clinic = clinic 
//or 
clinic.doctors = Set<doctorOne, doctorTwo> 
+0

リレーション名を変更しました。上記のコードを少し説明できますか?私はその点から捜査を続けることができます。だから、フィールド間の関係はコードによってのみ作られるということですか?アプリケーションロジックのどの時点でですか?ありがとう! – saman0suke

+0

こちらのドキュメントをご覧ください - https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CoreData/HowManagedObjectsarerelated.html – sschale

関連する問題