如果已经提出这个问题,我会事先道歉。
我正在修改公司内部使用的报告应用程序。要求是:
支持添加新字段(通过网络应用完成),并允许用户在构建报告时选择这些字段。目前有300个,现在它们的值存储在一个包含300列的SQL Server表中。用户必须能够在报表生成器中选择这些新字段。换句话说,架构是动态的。
改善报告生成性能。
我的思维过程是将这300个(可能更多)列分成多个表(标准化),但我不确定这是否是正确的方法,因为似乎没有是一种逻辑分组数据的方式,而不会超过20多个表。
另一种选择是将值存储在行(键,属性,属性值)中,然后执行数据透视,但我不确定它是否会表现良好。这个选项可以很好地处理动态模式,但是在用户可以使用数据(视图)之前,必须以编程方式构建pivot语句。
谢谢!