将特设模型保存到表中

时间:2011-09-05 00:10:37

标签: c# design-patterns

我们要求用户可以定义全新的数据输入表单并将该表单与文档相关联。

然后将重新使用新模型并将其与许多文档相关联,因此它不适用于一次模型。

很明显,我们无法在每次有新表单时对其进行编码,并且每次有新模型时我们都无法创建新表。

这不会发生(每天)。事实上,我认为可以说这是规则的例外。

但是,我们仍然需要满足它,将数据保存到表格中并在屏幕上表示数据和数据输入。

我想过简单地将模型序列化为表格,将数据序列化到另一个表格中。

有没有人真的这样做了,你愿意分享你的解决方案吗?

修改

这将是一个WPF解决方案,而不是基于Web的解决方案。

1 个答案:

答案 0 :(得分:0)

对我来说,显而易见的解决方案是使用XML - 这是此方案的完美工具。

  • 用户可以使用您将要编写的一些UI工具来定义表单。
  • 您解析该条目以生成一些结构化XML(或XSD);你会确定的
    • 字段名称,
    • 数据类型,
    • 允许嵌套值/对其他数据的引用
    • 枚举/'下拉'值等

从那里开始存储定义文件&使用它。

  • XML文档存储在数据库中,包含版本,日期或用户标识符
  • 呈现数据输入表单的代码将从您的数据库中检索相应的XML文档(最新的?)
  • 表单是动态生成的(字段名称,数据类型等已知)
  • 输入该动态生成的表单的任何数据都将根据您的结构化XML进行验证。
  • 将存储所有数据输入实例,并引用该XSD文档。

这可确保您能够根据相关的“数据输入表单”(表单定义XML)正确识别每个“数据输入实例”(收集值)

在这种情况下,XML的好处在于它是可扩展的 - 您可以将任何变体存储在一致的&兼容格式 - 根据一些XML指令动态生成数据输入表格非常简单。