1

コアデータを使用するiPhoneアプリに取り組んでいます。データには多数の人々のリストが含まれています。それぞれの人は同じである特定の属性を持っています。名、名前、年齢など。次に、これらの人々はカテゴリに分けられます。異なるカテゴリーの人々がいるという問題は、異なる属性を持っています。

例えば

人物AはカテゴリAに属し、属性a、b、cを持ちます

人物BはカテゴリBに属し、属性b、c、dがあります

人物Cはカテゴリbおよびcに属し、属性c、d、eを持ちます

エンティティパーソンを考えています

エンティティカテゴリ

この人物に適用されないすべての属性を格納するエンティティpersonattributesはnullになります。

コードでは、その人がカテゴリaであるかどうかがわかり、属性a、b、cのみが含まれます。

それは良いデザインになるのでしょうか、それともカテゴリごとに個別の属性エンティティが必要になるのでしょうか。

前もって感謝します!

4

2 に答える 2

1

では、各カテゴリには独自の属性セットがありますか?CategoryAttributeSetA、CategoryAttributeSetBなどのベースとして機能するCategoryAttributeSetクラスを作成するのは理にかなっているかもしれません...名、姓、およびすべてのPersonに共通するすべてのプロパティは、Personクラスのインスタンスデータである可能性があります。カテゴリ依存の属性は、各Personに、Personが属する各Categoryに対応する属性セットを持つCategoryAttributeSetタイプの配列を維持させることで保存できます。

ただの提案。

于 2012-05-17T15:21:35.473 に答える
1

他の設計上の考慮事項がない場合は、カテゴリの属性と属性a、b、c、d、およびeを持つ単一のPersonエンティティを使用します。

もう少し進んで、サポートされていない属性をnilにする必要がある場合は、属性の検証を検討します。validateA:error:オブジェクトのカテゴリなどに基づいてYESまたはNOを返すように実装します。

于 2012-05-17T16:59:19.593 に答える