【问题标题】:What would be a good way to design this core data database?设计这个核心数据数据库的好方法是什么?
【发布时间】:2012-05-18 00:59:19
【问题描述】:

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

例如

人员 A 将属于类别 A,并具有属性 a、b、c

人员 B 将属于 B 类,并具有 b、c、d 属性

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

我想有 实体人

实体类别

将存储所有一次的属性的实体personattributes 不适用于此人将只是空。

在代码中我会知道如果这个人是类别 a,他将只有属性 a、b、c

这将是一个好的设计,或者我需要为每个类别提供一个单独的属性实体

提前致谢!

【问题讨论】:

    标签: ios core-data


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      只是一个建议。

      【讨论】:

        猜你喜欢
        • 2015-03-10
        • 1970-01-01
        • 1970-01-01
        • 2016-04-17
        • 1970-01-01
        • 2011-05-27
        • 2010-09-24
        • 2021-10-15
        • 2011-04-28
        相关资源
        最近更新 更多