簡體   English   中英

核心數據一對一單向關系

[英]Core data one-to-one unidirectional relationship

我有2個實體,其中總共12個屬性存在某些特定類型字段的最小值,最大值和平均值的3種變化。 因此,我將2個實體重構為3個實體,使第3個實體成為“值”,其中包含3個屬性,即最小值,最大值和平均值。 並將12個屬性簡化為4個關系。 這是我的模型的副本,如下圖所示。

在此處輸入圖片說明

如您所見,我與第三個實體具有一對一的單向關系。 但是Xcode一直抱怨“逆”關系。

在此處輸入圖片說明

按照我的說法,我可以在“值”中添加4個關系並將所有關系更新為“逆”,但這似乎不是正確的解決方案,因為當第二個實體與“值”綁定時,它將有另外3個關系零關系,而在第一種情況下,它將有1個其他零關系。 這兩個都是不必要的。

我認為,重構“價值”並將其分成兩個相似的實體也不是一個好的解決方案。

因此,有人可以建議我什么是解決此問題的正確方法或最佳實踐。 讓我知道在描述我的問題時是否不清楚。

根據您的描述,我將撤消重構並返回使用屬性而不是關系。 您正在添加復雜性而沒有任何實際好處,而Values實體(正如您所發現的)過於籠統而無法真正有用或有意義。 這種重構沒有任何用處。 不要修復它,還原它。

您應該研究弱關系(獲取的屬性),以了解如何正確管理關系以及錯誤代碼的解決方案。

大多數對象關系本質上是雙向的。 如果部門與在部門中工作的雇員有多對多關系,則從雇員到部門之間存在一對一的逆關系。 主要的例外是獲取的屬性,它表示弱的單向關系-從目標到源沒有關系。

另外,如果您想使事情變得簡單,則應考慮(如果可能)避免使用3個對象,而要考慮到NSFetchRequestpropertiesToFetch ,使一個或兩個對象成為NSFetchRequest 這樣,您可以獲取Entity ,將屬性保留在單個Entity但僅獲取所需的屬性,並避免獲取不需要的屬性時的開銷和內存消耗。

無論您選擇哪種方式,都可以選擇。 GL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM