2011-05-09 47 views
3

我一直致力於一個處理家庭維護服務工作的項目,但我很難模擬不同人員和公司所扮演的角色。如果有問題,系統使用zendFramework編寫,mySql作爲數據存儲。建模人物/公司角色

我盡我所能解釋,但我不熟悉數據建模的語言。
該系統的最終用戶是維護公司,我將在以下示例中致電HammerTime。這是我到目前爲止有: 源1:居民 >> requestWorkOrder >>PropertyManagementCompany >> requestWorkOrder >>HammerTime

來源

WorkOrderRequests從兩個主要來源進來2:HomeOwner >> requestWorkOrder >>HammerTime

我想到一個這些實體的客戶只有PropertyManagementCompaniesHomeOwners是將直接收到發票的客戶。也有居民可以是房主,如果他們擁有他們居住在財產。另外要在上面這個附加業務邏輯的另一層,所有居民屬於物業並從居民的所有請求PropertyManagementCompanyPropertyManager中

WorkOrderRequests介導進來HammerTime它們被存儲爲工作訂單然後以幾種不同的方式處理。

處理了1:HammerTime >> assignWorkOrder >>員工

已處理2:HammerTime >> contractOutWorkOrder >>ServiceVendor

我覺得這些實體的工人和他們的似乎更容易建模。

問題是,我希望能夠根據角色類型將所有這些實體授予系統。在我看來,我想將它們全部歸爲一個成員抽象超類,它可以被兩個更抽象的類別分類公司。 那麼公司可以進一步通過更具體的類象員工子類PropertyManagementCompany等。

哪裏會有屬性適合,因爲它不是一個人或一個公司。我想也許這將是一個會員

我有一種感覺,我完全錯過了某些東西只是不覺得正確。所以任何想法,或指針將不勝感激。

回答

2

我根本不知道php或Zend,但是你可能想看看「Party-Role」模式。 (剛剛google,參見例如(1)(2)(3))。

在你的場景中人&組織是Party的子類型。 Employee,ServiceVendor,Resident等都是Role的子類型。有很多:黨之間的關係&角色。您可以根據需要在角色子類型中定義關係。分配權限應該變得容易;每個締約方獲得其分配給每個角色的權限。

hth。

+0

我認爲這是很好的解決方案,因爲這裏的問題主要在OOP /設計中,而不是在實現中。 – gaRex 2011-05-10 14:01:38

+0

您鏈接的帖子是很好的資源,sfinnie,謝謝。正是我需要的。 – John 2011-05-11 17:39:40

+0

太棒了 - 很高興他們幫了忙。 – sfinnie 2011-05-11 20:46:37