我在尋找適用於我的應用程序模型層的編程/設計模式,並且想知道哪種模型最適合您正在執行涉及跨多個表的連接的檢索的情況。用於數據庫表連接的最佳設計模式
例如,假設你有如下表/關係:客戶 - > 1..1賬戶 - > 0..n的特點
其中一個功能可能是一個支票本,或者一些高端產品比如免費旅行保險。
然後我想要getCustomersForFeature()檢索所有擁有免費旅行保險賬戶的客戶。
使用ActiveRecord或數據訪問對象似乎不合適,因爲它們通常集中在每個表的一個類上;同樣適用於Data Mapper。我意識到我可以將它分解成每個表的操作,例如getAccountsForFeature()和getCustomersForAccount(),但我想在一次打擊中進行檢索。
如果我們要「彎曲」每表一個類的模式並使用數據訪問對象模式,比如說,getCustomersForFeature()方法應該在CustomerDAO還是FeatureDAO上?但是這對我來說並不合適,因爲你會用其他表格的知識來污染你的DAO。
建議請。
我已經爲此問題添加了社區Wiki答案,該答案基於這裏的答案和其他閱讀材料總結了我認爲的可用方法。這並不影響其他答案,但是這是我所期待的面向模式的方法,包含了總體思想。我猶豫選擇它作爲「接受的答案」(我可以這樣做我自己的答案?),直到它受到更多的審查。 – 2009-11-04 18:14:06