2009-11-16 42 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