【问题标题】:Can Core Data be used for objects with variable schemas?Core Data 可以用于具有可变模式的对象吗?
【发布时间】:2010-03-08 04:56:29
【问题描述】:

我正在实现一个新的 iPhone 应用程序,并且总体上对 Cocoa 开发还比较陌生。我正处于选择这个应用的持久层如何工作的阶段,看起来我基本上是在 Core Data 和 sqlite3 之间进行选择。

此应用程序中的持久模型旨在具有在运行时加载的模式(来自某种 defn 文件,可能是 XML)。我的意思是,这个应用程序旨在具有在某种程度上是用户可定义的对象,例如客户类型(具有某些内置字段,例如“姓名”和“电子邮件”)可以根据用户的特定需求修改为具有额外字段(例如,用户可能希望向其客户添加“最喜欢的水果”字段类型)。

话虽如此,Core Data 是否适用于具有此类非烘焙数据模型的应用程序?我刚刚开始在 XCode 中使用 Core Data 对象设计器,它似乎想要处理具有已编译的固定字段的对象。

我绝对想在这里走阻力最小的道路,我可以看到使用 Apple 提供的数据框架的好处,但如果它会把我锁在在编译时定义的数据模型。

【问题讨论】:

    标签: iphone core-data sqlite


    【解决方案1】:

    Core Data 数据模型需要在编译时定义,但这并不意味着您不能允许最终用户添加和使用自定义字段。

    这只是意味着您将为自定义字段定义一个实体并将字段创建为对象。

    最好设计一个满足您需求的数据模型,而不是考虑如何在 SQL 中解决问题。

    【讨论】:

    • 感谢格里的回复。看起来我可能会花时间学习核心数据,尽管我绝对热衷于原始设计,以避免在“核心”字段和用户定义字段的实现之间存在任何区别。这只是创建了一个分裂的 impl,它必须始终处理一个对象中的两种类型的数据,而我希望所有字段都以相同的方式处理以简化 impl,尽管使用 Core Data 的便利性可能会超过使用拥有双管齐下的数据模型。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-29
    • 2010-10-27
    • 1970-01-01
    • 2021-11-21
    • 1970-01-01
    • 2012-07-03
    相关资源
    最近更新 更多