我尽力想出一个合适的标题,如果不太合理请谅解。我希望在下面更好地解释。我们有一个基于.Net框架并使用SQL作为数据存储的应用程序。与任何应用程序一样,这个应用程序需要支持可扩展性,例如支持附加数据转换和验证。
举个例子:将该应用程序视为一种工具,它提供了一组输入表,用户可以使用访问或Excel导入数据(已经有UI和网格),以允许数据导入。一旦导入数据,该工具会创建一个中间模型,并对输入数据执行一些计算,然后以预定义的格式输出结果。输入表模式和中间模型模式是固定的,不会发生变化。可扩展性是在从输入数据派生中间模型阶段需要的。允许用户能够更改数据派生的方式,例如,允许按多个字段分组而不仅仅是按一个字段分组等。
为了支持这种灵活性,我认为有两种基本方法:
选项1:创建一个映射到SQL数据模型的业务模型,并向用户公开业务模型,以允许他们覆盖转换和创建新的转换(例如使用LINQ或纯C#)。
选项2:公开整个SQL数据模型,并允许用户嵌入原始SQL查询来执行转换和验证。
我的个人偏好是使用选项1,因为我不太喜欢允许用户直接操作底层数据表。我更喜欢更受控制的访问方式。然而,这种方法需要用户具备编程语言(C#或VB)的知识。另一方面,选项2可能只需要了解SQL编程的人来创建原始查询,并将其直接插入应用程序中。但是,我认为这是一种不好的方法。
产品管理团队倾向于选择选项2,因为他们认为它更灵活,并且从资源角度来看更容易实现。
因此,我正在努力找出两种方法的优缺点,以更好地支持我对选项1的倾向。基本上,我倾向于使用C#或VB .net编程语言进行工作,而不仅仅是使用纯SQL查询。
请分享您的想法和意见。
举个例子:将该应用程序视为一种工具,它提供了一组输入表,用户可以使用访问或Excel导入数据(已经有UI和网格),以允许数据导入。一旦导入数据,该工具会创建一个中间模型,并对输入数据执行一些计算,然后以预定义的格式输出结果。输入表模式和中间模型模式是固定的,不会发生变化。可扩展性是在从输入数据派生中间模型阶段需要的。允许用户能够更改数据派生的方式,例如,允许按多个字段分组而不仅仅是按一个字段分组等。
为了支持这种灵活性,我认为有两种基本方法:
选项1:创建一个映射到SQL数据模型的业务模型,并向用户公开业务模型,以允许他们覆盖转换和创建新的转换(例如使用LINQ或纯C#)。
选项2:公开整个SQL数据模型,并允许用户嵌入原始SQL查询来执行转换和验证。
我的个人偏好是使用选项1,因为我不太喜欢允许用户直接操作底层数据表。我更喜欢更受控制的访问方式。然而,这种方法需要用户具备编程语言(C#或VB)的知识。另一方面,选项2可能只需要了解SQL编程的人来创建原始查询,并将其直接插入应用程序中。但是,我认为这是一种不好的方法。
产品管理团队倾向于选择选项2,因为他们认为它更灵活,并且从资源角度来看更容易实现。
因此,我正在努力找出两种方法的优缺点,以更好地支持我对选项1的倾向。基本上,我倾向于使用C#或VB .net编程语言进行工作,而不仅仅是使用纯SQL查询。
请分享您的想法和意见。