【发布时间】:2011-03-05 06:07:00
【问题描述】:
场景:
大系统(约 200 个表)。
60,000 名用户。
复杂的报告将需要我为每个报告执行多个查询,甚至那些将是复杂的查询,内部查询遍布整个地方 + 一些 PHP 处理。
方法:
我见过一种方法,但我不确定:
拥有一个集中的、非规范化的表格,用于记录系统中任何可报告的活动。这张表将主要保存外键,所以她应该相当紧凑和快速。
所以,例如(我的系统是一个虚拟学习管理系统),
用户注册课程,该表存储用户 ID、日期、课程 ID、组织 ID、活动类型(注册)。
当然,我还将这些数据存储在一个规范化的 DB 中,供实际应用程序使用。
优点:简单、可维护的查询和代码可用于处理数据和快速检索。
缺点:存在非规范化表失效的危险与真实数据库同步。
这种方法是否值得考虑,或者(最好根据经验)总计 $#%#%t?
【问题讨论】:
标签: php mysql reporting-services denormalization