0

我有一个名为“字段”的表,其中包含应用程序字段。在此表中,我存储每个字段的元数据(TableName、ColumnName、JoinType(内部/外部)。

我有一些工作,但它不像我想要的那样干净。

有没有人解决过这个问题?

我正在寻找一些关于更好做法的想法。

4

2 回答 2

1

动态数据/字段总是很有趣。

我之前处理这个问题的方法是有一个表来定义我想要的字段。一个非常基本的例子是:

GroupId int, <- 允许我出于共同目的将字段组合在一起

FieldId int, <- 连接的唯一标识符

FieldName varchar(100), <- 明显

DataType int <- 在包含可用类型(如文本、电话、电子邮件)的表上连接,这些类型可能具有特殊处理特性。

DisplayOrder int, <- 字段在屏幕上显示的顺序。

然后我有另一个表来保存实际数据:EntryId int, <- 将值分组到一个唯一的入口点。GroupId int, FieldId int, Value varchar(max) <-使用您认为包含数据的任何数字;如果您有正确版本的 sql server,则为 max

最后,我动态生成将实际数据旋转 90 度的视图,以便于报告。

通过这种方式,您可以在不修改底层代码的情况下对收集的内容有很大的自由度。

于 2009-05-14T14:31:57.603 回答
0

我过去写了一个查询生成器,它可以自动连接表格并将事物组合在一起以生成动态报告。

我想,今天,我会选择 NHibernate。虽然它是一个 ORM,但它根据与您的元数据非常相似的映射数据来管理连接并创建查询。

当然,您仍然需要做 NHibernate 未涵盖的特定事情。但这是一个很好的开始。

于 2009-05-14T14:28:54.567 回答