1

我们正在将一个大型的 asp.net Web 表单应用程序分成多个块,其中一个块将使用 asp.net mvc 重建。有两种主要类型的订单(假设类型 A 和 B)。每个订单都有次要类型(比如说 A1、A2、B1、B2 等),每个订单都有属性。A* 类订单几乎共享所有属性,B* 类订单共享所有属性的一半。从订单历史中,我们发现大部分订单都是 A 类。当前的设计对每个二级订单类型的订单表单使用用户控件,因此 A1 有用户控件,A2 有另一个用户控件,等等。属性是这些用户控件。

作为重新设计的一部分,我们想看看我们是否可以摆脱用户控制,而是动态生成具有必要属性的订单,同时保持应用程序的轻量级,并且能够以最小的努力添加新的二级订单类型。

设计 1:创建一个包含所有可能属性的表并将它们映射到每个次要类型并打开/关闭属性?它可能会变得非常细化,并包含有关应如何呈现属性的信息。优点:添加二级订单类型很容易,只需要为新订单类型添加映射。缺点:添加新属性将需要更改映射表,可能还需要更改所有图层。可能需要一个管理部分来管理映射。

设计2:使用jquery模板替换用户控件,向上发送json到服务器。优点:易于为新的二级订单类型添加新表单。缺点:一些逻辑可能必须进入模板(视图)

关于其中哪一个是好的设计有什么建议吗?有没有更好的办法?

谢谢。

4

1 回答 1

2

您的数据库设计与 ASP.Net 或 JQuery 无关。您需要担心构建可靠的数据模型。

表继承和良好的 ORM 将在这里有所帮助。

http://martinfowler.com/eaaCatalog/singleTableInheritance.html

https://community.jboss.org/wiki/NHibernateForNET

于 2013-04-10T19:27:52.280 回答