2009-11-16 39 views
2

所以我有這樣的結構:有道創建/更新/刪除分層數據

Widget: 
    Component 1: 
    Component 2: 
    Component 3: 
    ... 
    Component n: 

我建立一個ASP.NET MVC的Web應用程序,隨着其功能的一部分將允許用戶創建一個Widget對象並將Component對象(具有多個屬性)分配爲Widget對象的「子」。用戶可能沒有組件或可能添加50.另外,他們可能會編輯Widget對象並任意刪除或更改組件屬性。

應用程序中的所有內容都在工作,但我對這種結構化的方式並不滿意。在提交當前,我提交所有組件及其所有屬性。我刪除當前與此Widget關聯的所有組件,然後枚舉每個組件並重新添加它。

...但我不滿意這個解決方案。對於一些具有大量組件的組件(比如說500),即使用戶只更改了一個組件,該過程也會很耗時。但替代方案(跟蹤創建/更新/刪除基於每一個基礎)似乎真的很痛苦建立。

我是當然我可以做得更好,所以我很想知道什麼樣的模式可以用來解決這個問題(一般來說),特別是在Web應用程序的上下文中。

回答

1

爲什麼跟蹤創建/更新/刪除這麼難?看看我的response to a similar question關於找到存儲庫中的內容與回發內容之間的區別。如果每個組件都有唯一的ID(聽起來像是這樣),它不應該那麼困難。此外,對於具有大量組件的較大Widget,它應該稍微快一些,因爲您不會每次重建列表。

+0

謝謝...這是有幫助的 - 是的,這聽起來更好(而不是太痛苦)。有一個JavaScript的垃圾負載驅動一些編輯視圖(每個組件),所以編輯代碼可能是一個挫折的練習。 – 2009-11-16 19:09:16