2010-09-17 69 views
1

用戶希望看到從存儲數據的一些報告的分貝 例如:MVC(笨)設計問題

在一個時間間隔內的所有銷售(用戶提交一個公正的時間間隔),

所有在所選擇城市的銷售的時間間隔(同上面,但這次額外的城市選擇下拉菜單),

最暢銷的20個店(另一份報告中,沒有表單提交,涉及不同的數據庫表),

我的問題是 如何可以完成這些任務,而無需編寫爲每個單獨的模式,控制器和視圖報告 或 每個報告具有在一個單一的控制器和模型和兩個視圖(一個用於表單提交1所述的方法結果)。

我必須告訴我的背景是程序編程,我很困惑。一切似乎都以一種非常複雜的方式編寫基本的「開關盒」。

謝謝。

回答

1

這取決於你如何構建你的數據庫。雖然有很多模型可能看起來像是矯枉過正,但我​​會建議,如果你以正確的方式接近它,你會發現它讓你的生活更輕鬆。例如,你可以有一個處理銷售的模型。在該模型中,可能有一個按日期或時間檢索所有銷售額的功能。這個功能可以有一個可選的參數,允許你按城市過濾。然後,您可能會在同一型號中使用另一個功能來檢索前20位。 從控制器中,您將擁有一個功能。根據用戶是否提交表單,這將是一個很大的陳述。如果不是,則顯示錶單視圖(對於特定事物或至少視圖片段,最好具有單獨的視圖)。如果數據已提交,那麼只需測試數據以找出需要哪個報告,查詢模型中的相關方法並將結果發送到另一個結果視圖。 這樣,一個控制器,一個模型,2個視圖(或更多,如果您使用模板類的東西)。 我故意沒有爲你編寫代碼,但我希望這能指出你正確的方向。如果我錯誤理解了這個問題,或者您需要澄清,請發表評論。

+0

我很感謝你的回答。我知道你在說什麼,它對我有幫助。但是我有超過100個這樣的報告,並且他們使用了超過20個相互關聯或無關的表格。所以我夢想着一種方式,當我添加一個新的報告給系統時,我會提供表單域和查詢到一些自制的機制,它會爲用戶帶回表單並顯示報告。看起來像MCV不會讓我比其他方式更容易。我正在閱讀關於圖書館,幫手,插件等。我想我正在試圖超越懶惰。再次感謝你。 – bezelye 2010-09-17 13:40:37