-1

developer.apple.com で Core Data に関する記事と情報をいくつか読みました。ここで、アプリの ManagedObjectModel を作成したいと考えています。だから私は助ける必要があります - それはデータベースについての最初の私の計画だからです. だから私のアプリには次のオプションがあります

  1. ユーザーは自分のログイン名とパスワードでログインする必要があります。そのため、パスワードを忘れた場合、秘密の質問に正解を入力することで新しいパスを作成するチャンスがあります。
  2. アプリは連絡先を保存します。すべての連絡先には、名前、姓、写真、電話番号、および地図注釈のクールレクションがあります。
  3. ユーザーはいくつかのグループを作成できます (家族、友人など)

したがって、このアプリはobjective-cの基本を理解するために作成したもので、アプリにはロジックが含まれていない可能性があります。私のエンティティを確認してください。多分私は失敗を許しました。

最初のエンティティの連絡先

ここに画像の説明を入力

  • id - 連絡先の番号。
  • image - そこに配列を保存します。したがって、画像が 200 Kb 未満の場合はデータベースに挿入し、それ以上の場合はこの画像へのパスを保存します
  • map - マップ注釈の辞書
  • 名前
  • 電話 - 電話番号の配列

2 番目のエンティティグループ

ここに画像の説明を入力

  • contacts - このグループに属する連絡先の ID を含む配列
  • id - グループの数
  • title - グループの名前です (Family、Friends など)。

第三者ログイン

ここに画像の説明を入力

  • groups - このグループに属するグループの ID を含む配列
  • ログインする
  • パスワード
  • 秘密の答え - 秘密の質問への答え
  • 秘密の質問

関係

ここに画像の説明を入力

したがって、各ログインはいくつかのグループを持つことができますが、各グループは 1 つのログインにのみ属します。そこで、グループ関係の「対多関係」を作成します。したがって、各グループにはいくつかの連絡先が含まれ、連絡先はいくつかの異なるグループに属することができます-私は多対多の関係を作成します。

プロパティ「optional」について。チェックされていない場合、この属性または関係はチェックされなければならないことを理解しています。したがって、このプロパティを削除します

  • 連絡先の「id」
  • グループ内の「id」
  • ログインの「ログイン」、「パスワード
  • 連絡先の「toGroups」関係で
  • グループの「toLogin」関係で

「削除ルール」について。いくつかのログインを削除する場合、このログインに属するすべてのグループと連絡先を削除する必要があります。ログインで関係「グループ」に「カスケード」を選択できますが、グループのみが削除され、連絡先は削除されません。一部のグループを削除すると連絡先が削除されますが、他のグループはこの連絡先を引き続き持つことができるため、関係「toContact」に対してはそのようなことはできません。したがって、ログインに連絡先の配列となる属性「連絡先」を作成し、連絡先との関係を作成する必要があります。ログインを削除すると、それに属するすべてのグループと連絡先が削除されます。

PS申し訳ありませんが、私はまだ初心者であり、私の質問はあなたにとって面白いかもしれませんが、助けが必要です

4

1 に答える 1

1

私が気づいたいくつかのこと -

  1. 「id」プロパティを使用する必要はありません。ほとんどのデータベースは、プライマリ/外部キー管理のためにこれらを計画していますが、関係が設定されていれば、コア データがこれをすべて管理します。また、このロジックにより、その関係を手動で作成するためのプロパティは必要ありません (つまり、グループでは「連絡先」、ログインでは「グループ」)
  2. 辞書や配列をエンティティに格納してもよろしいですか? これらは、マップ アノテーションなどの別のスタンドアロン エンティティのように聞こえます。次に、元のオブジェクトから新しいオブジェクトへの 1 対多の関係を構築します。
  3. バイナリデータとして保存された画像は、これを行うための最も効率的な方法ではありません。アプリのサンドボックスが提供するファイルシステムを使用することをお勧めします。先日、同様の質問を見ましたiOSデバイスに画像をローカルに保存する
于 2013-01-27T15:27:39.530 に答える