2012-05-17 190 views
1

我正在使用核心數據的iphone應用程序。數據包括大量人員。每個人都會有一些相同的屬性。名字,姓氏,年齡和更多。然後這些人將被分成幾類。我擁有不同類別人員的問題會有不同的屬性。什麼是設計這個核心數據庫的好方法?

例如

人A將在A類和將具有屬性A,B,C

者B將在類別B並且將具有attribues B,C,d

C先生將在b類和C,將有屬性C,d,E

我想有 實體人

實體類別

實體personattributes將存儲屬性爲所有一次不適用於此人的屬性將僅爲null。

在代碼中,我就會知道,如果這個人是A類,他只會有屬性A,B,C

這會否是一個很好的設計或我需要一個單獨的屬性,實體爲每個類別

提前致謝!

回答

1

在沒有其他設計考慮因素的情況下,我會使用單個Person實體,該類別具有屬性,屬性a,b,c,d和e。

如果你想進一步,並要求不支持的屬性爲零,我會看看屬性驗證。執行validateA:error:根據對象的類別返回YES或NO,依此類推。

1

那麼每個類別都有自己的一組屬性?可能有意義的做一個CategoryAttributeSet類,它可以作爲CategoryAttributeSetA,CategoryAttributeSetB等的基礎...名字,姓氏和所有Persons共有的所有屬性都可以是Person類的實例數據,然後可以通過讓每個Person維護一個類型爲CategoryAttributeSet的數組來存儲依賴於類的屬性,其中屬性集對應於該Person所屬的每個類別。

只是一個建議。

相關問題