gpt4 book ai didi

mysql - 在字段中存储求和值与在表中存储 sum() (MYSQL)

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:12 28 4
gpt4 key购买 nike

我想知道在字段中存储求和值与执行 sum() 的优缺点在单独的表上操作。一个示例是检索项目列表以及每个项目的购买数量。在这种情况下,可以有一个 Items表和 Purchases需要对其购买进行汇总的表格。

求和的优点:

  • 更简单、更快的 SQL 语句(不需要 JOIN,例如 Items.item_id=Purchases.item_id)

sum() 的优点:

  • 不必维护 2 种方法来获取可能不同步的值,因为它们同时需要 UPDATE INSERT更改它们的语句(例如,INSERT 表中购买的 PurchasesUPDATEpurchase_count 字段的 Items

最佳答案

这个问题没有正确答案。答案完全取决于数据的使用方式。

两个极端。如果您很少查询数据并且历史数据有很多更改,那么您的系统可能会在不需要时花费大量精力来保持总和的一致性。

另一方面,如果数据是“仅插入”的,并且每条记录都用求和重复检索,那么求和可以省力。

一般来说,趋势是支持更规范化的方法——也就是说,在查询时执行 sum() 而不是将其作为业务规则维护。一个明显的优势是这些值随着时间的推移是一致的。

第二个优势是分析可以变化。也许今天你需要元素的数量。也许下周,您需要计算单位数量。和美元的计数。或净价差。这些随着时间而改变。试图预先捕获它们是一项挑战。这里的解决方案是将问题分成两部分。将标准化数据(没有神奇的总和)存储在一个“数据库”中。将摘要存储在可以修改以满足最终用户目标的“数据集市”中。数据集市将定期更新——每天一次或每周一次。

具有期间摘要的规范化基础数据是一种可满足多种需求的强大架构。但是,在某些情况下,在 insert/update/delete 而不是 上进行计算确实是一个更好的主意>选择。因为这样的解决方案通常涉及更多的复杂性(即时的多个触发器),所以它必须比更规范化的解决方案更有说服力。

Wikipedia: Database Normalization

关于mysql - 在字段中存储求和值与在表中存储 sum() (MYSQL),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17041316/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com