2009-09-27 81 views
3

我想知道哪些是域實施的常見做法。首先設計業務對象,首先需要持久性或數據庫模式,然後從實體關係圖(以及後來的ORM poco *的)中生成它?數據庫建模或數據庫設計:哪個先到?

我要開始一個解決方案,但我想知道哪個是最可取的「模式」。

(*由NHibernate的供電)

回答

8

取決於你是否是一個對象或關係建模。偏好取決於你最瞭解的東西。

我是一個對象的人,所以我會說在對象中建模問題,然後從中獲取關係模式。

我認爲有很多數據沒有被對象處理(例如索引,主鍵和外鍵,規範化),這些問題表明當你完成時你還有一些工作要做。

但任何關係人都會爭辯說他們是主要的,應該在駕駛座位上。

我懷疑這個問題會有確定的答案。我不相信應該有。有一個對象關係阻抗失配是真實的。對象是以實例爲中心的;關係模型是基於集合的。兩者都需要慎重考慮。

+0

對於對象關係阻抗不匹配。 – 2009-09-27 16:39:20

+1

我剛剛在NHibernate in Action中發現了一個很好的記錄答案,這本書是我最近購買的。它說,如果你在從零開始項目,自上而下的方法是好的。設計實體,裝飾它們,然後裝飾數據庫。我認爲自己在我的書架上,所以我會嘗試這種方法,但是我認爲我會被綁定到ORMapper(如果在接下來的日子裏我會改變主意的話),是不是? – 2009-09-27 17:00:05

+0

@Aggelos - 如果您正確地爲應用程序分層,則不會有將自己綁定到某個ORM的風險。對於人們來說,正確分層應用程序並不常見,因爲要正確執行有點困難。 – 2009-09-28 09:15:39

0

通常的做法都是,並且歸結爲每個實施者的偏好。正如duffymo建議你應該選擇你最瞭解的人。

但是,您還應該考慮處理數據的常規模式。有一個很好的建模,但在性能方面非常昂貴並不是一個好的選擇。餘額在中間的某處。

我個人傾向於更多關注數據庫方面的事情,主要是因爲數據庫是難以擴展的數據庫。在設計數據庫時,記住這一點是有幫助的。您不必一定按照嚴格的縮放規則進行初始設計,但考慮到後續對縮放的需求時,可能會幫助您不作出設計決定,相當於在腳中拍攝自己。