2012-11-07 23 views

回答

1

如果您正在使用數據庫並創建域對象,則它們都是。數據庫設計和類設計是兩回事,如果你使用數據庫和類,兩者都是必需的。這不像你選擇一個或另一個。

這是一個ORM進場的地方。當數據層從數據庫中檢索信息時,一種典型的方法是將關係數據轉換爲您的域對象並將其傳遞給業務邏輯層,以便應用程序的其餘部分可以處理域對象而不是關係模型。

然後,當持久化數據時,您的ORM會做相反的事情:它需要一個域實體並將其重新轉換爲可以保存到數據庫的關係結構。

注:我在這裏假設一個關係數據庫。如果沒有,則將關係替換爲您正在使用的任何類型的持久層。

2

我想到的是,在OOP中,類(對象)包含方法,而數據庫僅僅是關係和值的集合。 因此:

如果您可以說一個問題是關於規範中的「事物」如何相互關聯,那麼您就有數據庫設計問題。

如果是關於規範中的「事物」能做什麼,那麼您將沿着面向對象的編程進行更多的建模。

1

我認爲應該解決的面向數據庫問題的唯一規範是那些專注於結構化數據類型操作的規範。如果您的規範是關於「存儲客戶記錄」,「刪除訂單記錄」,「將記錄匹配規格的價格值從12更改爲33」,那麼您就擁有一個數據庫項目。

自從我工作的Cobol團隊僱傭了系統~~無政府主義分析師以來,我還沒有看到過那種問題規範。幾乎我所做過的每個項目的要求都不是關於數據如何存儲的,而是數據的含義。

如果您的要求是「用戶可以創建客戶,客戶可以下訂單,訂單包含產品,訂單可以有交付方式,付款方式和狀態,狀態遵循業務流程」,則您有OO問題。您可能需要一個存儲機制 - 並且數據庫將是一個很好的選擇 - 但您擁有的業務邏輯不能通過創建結構化數據類型和關係來完成。

相關問題