應用程序中有一些簡單的實體(例如僅包含id和title),這些實體很少發生變化,並且正在被應用程序的更復雜的實體引用。這些通常是實體,例如Country
,City
,Language
等。域模型命名問題
這些叫做什麼?我用下面的名字對於那些在過去,但我不知道這是給他們打電話的最佳方式:
- 參考數據
- 查找值
- 字典
感謝
應用程序中有一些簡單的實體(例如僅包含id和title),這些實體很少發生變化,並且正在被應用程序的更復雜的實體引用。這些通常是實體,例如Country
,City
,Language
等。域模型命名問題
這些叫做什麼?我用下面的名字對於那些在過去,但我不知道這是給他們打電話的最佳方式:
感謝
我要說的參考數據
您標記爲「ddd」,因此假設您正在尋找更多的域驅動設計方法,請將標識符放在這些對象上,並像Value Objects一樣對待它們。
您可能會考慮放棄標識符的原因是它會給問題域添加不必要的複雜性。例如,你在實施中有一個「國家」表,我假設?你仍然可以擁有它,但它不會是一個參考查找。您將純粹將其用作「參考數據」。對於需要引用的場景,可以預先加載它 - 也許你的UI將它綁定到下拉列表中,例如...
當實體被保存或更新時,存儲對象的值,因此「價值」「對象」。如果用戶將實體更改爲另一個值,則沒有問題,只需更新該值即可。在進行CRUD操作時必須進行少量的關聯查找,這使得整體模型減少的複雜性。
謝謝。是的,我已閱讀http://amzn.com/0321125215中的Value Objects。這是一個有趣的概念,但在分貝級別看起來不像反規範化?國家文字將散落在各地。更重要的是,當我需要更改國家文本(例如錯字)時,我必須掃描許多表才能應用修復。 – cherouvim 2010-06-03 05:06:17
@cherouvim - DDD的關鍵之一是數據庫看起來不重要,只要您的實體和數據之間有可靠的映射層即可。至於錯別字,你是對的。你將不得不尋找多個地方來修復。但從管理角度來看,您始終可以維護存儲過程以更新其每個實例。例如,你可以有一個存儲過程來更新你所有的國家引用,它將舊值和新值作爲參數併爲你執行更新語句,所以你只需要調用一個proc來修復它。 – 2010-06-03 07:35:17
(續)儘管如此,不得不改變現有的價值確實是一個邊緣案例。你需要做的頻率很低,因爲這些數據是相當靜態的,所以在你的代碼變成「生產質量」之前,你應該排除這些問題。你參考的書是「藍色聖經」 - 我提供的鏈接上的定義來自同一個地方。 :-) – 2010-06-03 07:37:42
謝謝。任何參考資料/文件? – cherouvim 2010-06-02 08:07:32
然後是參考數據。謝謝 – cherouvim 2010-06-03 05:12:00