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

這是正確和安全的,但如果你不打算使它們原子化,可重用或有其他一些可以從中受益的設計,就會提出反對意見。這是爲什麼......你將不得不編寫更長的語句才能訪問你的屬性,取數據庫操作必須包含連接以獲取關係屬性,而且你並不是真正建模正確的對象......但是如果您需要出於某種原因,而不是僅僅不喜歡具有很多屬性的模型,那麼繼續。