如何允许灵活的html表单字段同时轻松运行sql报表?

如何允许灵活的html表单字段同时轻松运行sql报表?,html,database,architecture,webforms,Html,Database,Architecture,Webforms,我正在建立一个网站,允许申请人提交申请表。申请表的字段需要灵活,以允许更改 传统的方法是将每个表单字段映射到一个数据库列,但随着系统的发展,新字段的引入,这在增长方面是非常有限的。随着新列的引入,现有数据库行将具有空值,或者由于“缺少数据”而具有某种“默认”值 但是,如果我将字段设置为关键/价值驱动的方法,那么以后将很难进行报告 因此,如果有人做过类似的实现,我希望得到一些建议。谢谢 示例1(字段->列): 应用程序表单可能有以下内容 字段: 名字 姓 并应提供相关的数据库表 如下所示:

我正在建立一个网站,允许申请人提交申请表。申请表的字段需要灵活,以允许更改

传统的方法是将每个表单字段映射到一个数据库列,但随着系统的发展,新字段的引入,这在增长方面是非常有限的。随着新列的引入,现有数据库行将具有空值,或者由于“缺少数据”而具有某种“默认”值

但是,如果我将字段设置为关键/价值驱动的方法,那么以后将很难进行报告

因此,如果有人做过类似的实现,我希望得到一些建议。谢谢

示例1(字段->列):

应用程序表单可能有以下内容 字段:

  • 名字
并应提供相关的数据库表 如下所示:

  • 名字nvarchar(255)
  • 姓氏nvarchar(255)
示例2(键/值对):

  • 第一个名称(键列)、john(值列)、textbox(类型)
  • 姓氏(键列)、史密斯(值列)、文本框(类型)
我发现了一些示例,比如polldady.com wufoo.com,它们允许动态生成web/html表单,但我认为在我的例子中,由于报告要求,它们有些无用。我认为它们的实现类似于我的“示例2”

更新:


我发现,我相信这些概念与我需要实现的目标相似。我将深入研究该项目。

对于应用程序的运行(请参阅),您将希望使用您提到的键/值对方法,这是实现灵活性(以及可维护的系统)所需的唯一合理方法

解决报告问题的一个好方法是为事务(OLTP)和报告()位使用单独的数据库模式。不同的网络模式并不意味着不同的物理数据库——尽管在某个时候将它们分开可能是有意义的

然后,您将拥有某种在两者之间迁移数据的过程(从OLTP源到目标OLAP表)

如果将OLTP、OLAP和ETL逻辑都放在同一个位置,那么将更容易管理和保持良好的干净分离。或者,您可以将ETL逻辑构建到您的应用程序中——这实际上只取决于您如何构建解决方案的其余部分(您是否完全抽象出数据访问)以及您的驱动程序是什么(这是一个基于云的内部工具,还是一个人们部署到自己工具包中的系统)


单独的OLTP/OLAP设置的美妙之处在于,两者都致力于做好各自的工作,而不会影响到另一方。

我发现了这一点。我会看一看。只要确保在设计“键/值”表时包含适当的元数据字段(和信息)在进行ETL时为您提供帮助。我实际上认为,如果使用键/值解决方案,可能会有一些性能问题。因为我实际上是将列数x行数(数据)转换为行数(列)x行数(数据)。因此,键/值表的数量可以有非常大的行。如果表的宽度较窄(不是很多列),则通常可以有大量行。