设计这个核心数据库的好方法是什么?

时间:2012-05-17 14:22:12

标签: ios core-data

我正在开发一款使用核心数据的iphone应用。数据包括大量人员。每个人都有一些相同的属性。名字,姓氏,年龄等等。然后将这些人分为几类。我拥有不同类别的人的问题将具有不同的属性。

例如

人A将在A类中,并具有属性a,b,c

B人将属于B类,将有b,c,d

人C将属于b和c类,并具有属性c,d,e

我在想 实体人

实体类别

实体personattributes将存储所有不适用于此人的属性,只会为null。

在代码中我会知道这个人是否属于类别a他只有属性a,b,c

这是一个好的设计还是我需要为每个类别单独的属性实体

提前致谢!

2 个答案:

答案 0 :(得分:1)

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

只是一个建议。

答案 1 :(得分:1)

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

如果你想更进一步并且需要不支持的属性为nil,我会看一下属性验证。实现validateA:error:以根据对象的类别返回YES或NO,依此类推。