0

我很好奇结构化NSManagedObjects,特别是它们的嵌套。这是我第一次设计数据模型,所以让我在我的问题之前解释一下。假设我有一个NSManagedObject for Users。用户有许多不同的特性:嵌套NSManagedObjects是否正确/安全?

  • 名字:NSString的
  • 名字:NSString的
  • 生物:NSString的
  • 照片:NSData的
  • 电子邮件:NSString的
  • registrationTimestamp:NSDate的
  • 密码:NSString
  • 用户名:NSString
  • 追随者:用户(一对多关系)
  • 人他们是以下内容:用户(一对多关系)

有该对象中很多的属性,并且可能会有更多。所以我的问题基本上是,是安全的,甚至是适当的,嵌套NSManagedObjects?所以这不是所有这些属性的,我有:

  • 信息:UserInformation
  • 登记:放在userRegistration
  • 追随者:用户
  • 以下内容:用户

凡UserInformation并放在userRegistration会单独保存一些原始属性的NSManagedObjects。我知道这可能不是嵌套对象的最佳情况,但是如果我有更复杂的对象,如果嵌套对象会更容易理解。

在此先感谢您的意见!

回答

0

这样做的正确方法是绘制您的ER模型并定义实体。如果这样做,您可以为UserInformation和UserRegistration定义一个与User建立一对一关系的实体,那么这样做没有问题。对于追随者和以下情况,您必须定义自我关系(一对多至自我实体https://stackoverflow.com/a/4504770/474740)。

使用关系定义模型并使用特定类型(一对一,一对多)标记它们。

请记住,在保存和提取数据时,对于您来说如何更容易。

0

这是正确和安全的,但如果你不打算使它们原子化,可重用或有其他一些可以从中受益的设计,就会提出反对意见。这是为什么......你将不得不编写更长的语句才能访问你的属性,取数据库操作必须包含连接以获取关系属性,而且你并不是真正建模正确的对象......但是如果您需要出于某种原因,而不是仅仅不喜欢具有很多属性的模型,那么继续。