2012-05-17 119 views
1

我正在使用核心数据的iphone应用程序。数据包括大量人员。每个人都会有一些相同的属性。名字,姓氏,年龄和更多。然后这些人将被分成几类。我拥有不同类别人员的问题会有不同的属性。什么是设计这个核心数据库的好方法?

例如

人A将在A类和将具有属性A,B,C

者B将在类别B并且将具有attribues B,C,d

C先生将在b类和C,将有属性C,d,E

我想有 实体人

实体类别

实体personattributes将存储属性为所有一次不适用于此人的属性将仅为null。

在代码中,我就会知道,如果这个人是A类,他只会有属性A,B,C

这会否是一个很好的设计或我需要一个单独的属性,实体为每个类别

提前致谢!

回答

1

在没有其他设计考虑因素的情况下,我会使用单个Person实体,该类别具有属性,属性a,b,c,d和e。

如果你想进一步,并要求不支持的属性为零,我会看看属性验证。执行validateA:error:根据对象的类别返回YES或NO,依此类推。

1

那么每个类别都有自己的一组属性?可能有意义的做一个CategoryAttributeSet类,它可以作为CategoryAttributeSetA,CategoryAttributeSetB等的基础...名字,姓氏和所有Persons共有的所有属性都可以是Person类的实例数据,然后可以通过让每个Person维护一个类型为CategoryAttributeSet的数组来存储依赖于类的属性,其中属性集对应于该Person所属的每个类别。

只是一个建议。

相关问题