【发布时间】:2018-02-07 20:40:50
【问题描述】:
我们正在构建报告应用程序,我们将在其中每天转储大量数据。目前,我们有两种数据模型,一种用于运营,另一种用于报告。
报表数据模型中的几列出现在操作表中。如果运营数据模型得到更新,我们如何确保报告数据模型进行类似的更改,更新成本是多少?
例子:
Report Table -
user_name
organisation_name
event_name
etc 10 more col.
User Table -
id
name
..
Organisation Table -
id
name
让我们考虑报表表包含 100 万条记录,并且组织名称发生更改,该更改需要反映在报表表中。更改细节的频率可能是平均的。
所以我们有两个选择
规范化数据库 -
这将节省报告表的更新,但查询处理将花费更长的时间。
非规范化数据库 -
这将帮助我们指导更快的查询处理,但维护它会涉及复杂性。
请指教,我们应该走哪条路?我们的数据量非常大,报告数据的粒度很高。
【问题讨论】:
-
有些查询可能更快,有些可能更慢。 “过早的优化是万恶之源。”
标签: database-design database-normalization denormalization