构建具有高度规范化的数据库的事务系统时,运行报告样式查询,甚至在UI上显示数据的查询都可能涉及多个联接,这在数据繁重的情况下可以并且通常会影响性能.加入很贵.
通常,所提供的指导是您永远不应该从事务性数据库模型中运行这些查询,而应该使用针对特定UI视图或报告而定制的非规范化展平模型,从而消除了对许多联接的需要.在这种情况下,数据复制不是问题.
这个概念很有意义,但是当专家发表这些陈述时我很少看到的是如何实现这一点.例如,(并且坦率地说,我很欣赏使用任何平台的示例)在sql server后端运行的中型系统中,您有一个规范化的事务模型.您还有一些报告和需要查询的网站.因此,您创建了一个"报告"数据库,可以平滑规范化数据.你如何保持同步?交易日志运送?如果是这样,您如何转换数据以适应报告模型?
单位测试你自己的htmlhelpers是否有任何实际价值?这些东西中的许多只是吐出一堆html标记 - 如果没有逻辑则几乎没有.那么,你只是比较一个大的HTML字符串到另一个?我的意思是,其中一些要求你在浏览器中查看生成的标记,以验证它是你想要的输出.
似乎有点无意义.