0

NSManagedObjectsの構造化、特にそれらのネストについて興味があります。データモデルを設計するのはこれが初めてなので、質問の前に少し説明させてください。ユーザー用のNSManagedObjectがあるとしましょう。ユーザーにはさまざまなプロパティがあります。

  • 名:NSString
  • 姓:NSString
  • バイオ:NSString
  • 写真:NSData
  • メール:NSString
  • registerTimestamp:NSDate
  • パスワード:NSString
  • ユーザー名:NSString
  • フォロワー:ユーザー(多くの関係)
  • 彼らがフォローしている人々:ユーザー(多くの関係)

そのオブジェクト内には多くのプロパティがあり、さらに多くのプロパティが存在する可能性があります。だから私の質問は本質的に、NSManagedObjectsをネストするのは安全ですか、それとも適切ですか?そのため、これらすべてのプロパティの代わりに、次のようになります。

  • 情報:UserInformation
  • 登録:UserRegistration
  • フォロワー:ユーザー
  • 次の:ユーザー

UserInformationとUserRegistrationは、これらの元のプロパティの一部を保持する別個のNSManagedObjectsになります。これはネストされたオブジェクトの最良のケースではないかもしれないことを理解していますが、ネストされていると理解しやすい、より複雑なオブジェクトがある場合はどうでしょうか。

よろしくお願いします!

4

2 に答える 2

0

それは適切で安全ですが、アトミック、再利用可能にする予定がない場合、またはそれから恩恵を受ける他の設計がない場合は、お勧めしません。理由は次のとおりです...プロパティにアクセスするには、より長いステートメントを記述する必要があり、フェッチのデータベース操作には、関係プロパティを取得するための結合を含める必要があり、実際には正しいオブジェクトをモデル化していません...しかし多くのプロパティを持つモデルが気に入らないだけでなく、何らかの理由で必要な場合は、先に進んでください。

于 2012-07-14T14:28:38.507 に答える
0

それを行う正しい方法は、ER モデルを描画してエンティティを定義することです。その場合、UserInformation と UserRegistration に User と 1 対 1 の関係でエンティティを定義すれば問題ありません。フォロワーと次のケースでは、自己関係を定義する必要があります (1 対多対自己エンティティhttps://stackoverflow.com/a/4504770/474740 )。

リレーションシップを使用してモデルを定義し、特定のタイプ (1 対 1、1 対多) でマークします。

データを保存して取得するときに、どのようにすればより簡単になるかを覚えておいてください。

于 2012-07-14T04:28:13.793 に答える