假設我正在爲電話號碼建模。我有一個爲PhoneNumber
的實體,另一個爲Person
。有一個鏈接表表示PhoneNumber
和Person
之間的鏈接(如果有的話)。鏈接表也有一個DisplayOrder
的字段。可選多對多關係的域模型
當訪問我的域模型時,我有幾個用例來查看Person
。
- 我可以看看他們沒有任何
PhoneNumber
信息。 - 我可以看看他們的具體
PhoneNumber
。 - 我可以看看他們和他們所有的當前(或過去)
PhoneNumbers
。
我試圖模擬Person
,不僅爲標準的CRUD操作,但對於PhoneNumbers
的(UN)分配到Person
。我無法表達兩者之間的關係,特別是對於DisplayOrder
財產的尊重。我可以想到幾個解決方案,但我不確定哪個(如果有的話)是最好的。
- 具有
Person
和PhoneNumber
屬性的PhoneNumberPerson
類(最接近數據庫設計) - 一個
PhoneCarryingPerson
類,從Person
繼承和擁有PhoneNumber
屬性。 - 一個
PhoneNumber
和/或PhoneNumbers
財產上Person
(和VIS-A-反之亦然,一個Person
財產上PhoneNumber
)
什麼是模型這是有道理的,從一個域模型視角的好辦法?如何避免錯位的屬性( Person
)或有條件填充的屬性?
+1 - 建模連接Person和PhoneNumber作爲實體本身的Edge是最有意義的,因爲它允許您隨時向該Edge添加額外信息。 – 2010-05-03 20:00:31
什麼樣的信息可以更有意義地生活在邊緣,可以說,而不是由那個邊緣加入的實體之一? – 2010-05-03 20:05:02
我開始實現這一點,我發現時間片是問題更多的部分。我必須通過一個約會找到電話號碼,但在那個時候,這個人不再是一個人,而是一個歷史人物。這有點奇怪,但有效。 – Greg 2010-05-03 20:23:52