我有一個名爲DiveSite的核心數據實體,它具有大量屬性,其中很多屬性代表影響潛水站點的功能或條件的布爾值。核心數據性能是否更好,屬性更少?
其實,我有這麼多的屬性,即Xcode中給了我一個警告 - 「配置錯誤的實體 - DiveSite擁有超過100種性能;考慮更淺的實體層次或反規範化屬性」
許多屬性可能是分組減少了實體上屬性的總數 - 我可能會將布爾變量組變成一系列整數,並進行邏輯並檢查我想要的因素。
我也意識到,我可以讓這些組分爲單獨的實體 - 其中一些將有1-1的關係和一些1-多關係
在性能方面會改變我的DiveSite實體少屬性是一件積極的事情嗎?
如果是這樣,那麼可能會有更好的性能明智的擁有單獨的實體,或者可能有6個屬性,我使用謂詞來過濾。 ?
考慮這個問題時,我意識到,如果我走單獨的實體路線,我允許自己添加因子,只需將它們添加爲實體的實例而不更改我的代碼。
在我寫這篇但希望體驗的核心數據的意見/和數據庫用戶那裏
乾杯
那麼,當你獲取一個實體時,所有的屬性都與它一起被填充? – user523234
是的,它提取整個實體。 – rednaw
我認爲情況有點複雜。核心數據獲取所有屬性值(如果'includesPropertyValues'爲'YES',則默認爲),並將它們存儲在行緩存中。託管對象將作爲錯誤返回,並且稍後將使用行緩存中的值填充。您可以通過將'returnsObjectsAsFaults'設置爲'NO'來更改此行爲。也就是說,分割你的實體聽起來像個好主意。 –