![]() |
1
3
我想你已经回答了你的问题,把它写下来。 这个问题可以用这样的方式来看待:一方面你有“实时数据”。你有新的数据,从中创建视图来显示“实时数据”也很不错。 但随着时间的推移,有更多的数据和逻辑变化。所以写下你前段时间的数据摘要是很好的。这是非常实用的-您不重复数据,因为您重新计算它们并保存到它们的新表摘要中。 所以当你这样想的时候,很明显在这个例子中新表会更好。正如你所写:
所以,当你满足这个(或部分)标准,而不是它的选择,你进入表格。 当我使用视图时,只显示其他新数据中的新数据。在非常非常简单的问题上。当事情变得更复杂时-你总是换到新的桌子上。 所以不要害怕去做。拥有一个访问速度更快的摘要表是一个非常不错的解决方案,它是数据库格式良好的标志。 注意这个表的设计—所以当业务逻辑发生变化时—您不需要改变这个表中的所有内容。然后一切都会好起来的! |
![]() |
2
2
在这种情况下,我赞成新桌子。该视图有许多缺点—性能明显、复杂性和逻辑锁定。但是,过度架构的原因是,随着底层数据的更改,视图中的值也将更改。然而,在大多数情况下,这是一件好事,对于金融业务来说,对发生的事情有一个固定的记录不是更好吗? |
![]() |
3
0
我总是决定更好的正常化。在您的情况下,尽管视图可能很复杂,但最好有新的表,而不是必须与所有数据更改操作保持同步。另外,视图始终是当前的,而您的工作日结束时的表填充每天只有几个小时是当前的。 此外,如果这个表中的数据由于任何原因而不同步,则会出现更大的问题。 |
![]() |
4
0
正如mrtelly提到的,您确定您的最终结果表确实是视图数据的副本吗?或者,它实际上是作为视图数据中的项的结果而采取的最终操作的记录。 举个更清楚的例子,假设每次我的油箱空了一半,我就买10美元的汽油。我把这个写在日志上。有一天,我买了汽油,把它写在我的日志里,后来发现我的油压表坏了,我真的有3/4罐汽油。我现在应该从我的日志中删除10美元的购买,因为基础数据(在我的油箱里的汽油水平)已经改变了吗?好吧,也许那不是 更清晰的 例如,但希望它能让人明白这一点。记录结果与记录导致结果的事件不同。在金融应用中尤其如此。因此,我不知道您将最终结果存储在自己的表中会破坏规范化。 |
![]() |
5
0
甲 索引视图 就是这样。但是这种方法有很多限制,但是它通常是有利的,尽管如果实现不正确,它会有一些开销问题。使用这种方法,您不需要跟踪基表中发生的更改,数据将在索引视图中很好地积累起来。理论上。 参考文献:
|
![]() |
Community wiki · SQL语法新手 1 年前 |
|
KateMak · 是否将多行中的多列与唯一id组合? 1 年前 |
![]() |
Karuna · SQL中列内的筛选器[重复] 1 年前 |
![]() |
Irvan Affandy · 为另一个选择选择声明的键 1 年前 |
![]() |
Community wiki · 这个MySQL语句出了什么问题? 1 年前 |
![]() |
Community wiki · 优化从同一表中提取的多列的查询 1 年前 |