首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >派生值是否应持久化?

派生值是否应持久化?
EN

Stack Overflow用户
提问于 2017-04-13 12:44:03
回答 1查看 70关注 0票数 1

我有点困惑,我们是否应该将派生值存储在DB中?例如:-如果要对员工薪资进行计算并将其显示在UI中。

有两种方法:-

方法1:-,每次我们需要在UI上显示时,我都会计算派生值。

方法2:-在持久化薪资本身时将派生值保存在单独的列中。

从性能的角度来看,方法2是好的,但从可维护性的角度来看,方法2是不好的。从可维护性的角度来看,这很糟糕,因为我必须维护额外的列。同样,对于方法1,从可维护性的角度来看,它是好的,但从性能的角度来看,它是不好的,而且每次我需要导出值时,都需要额外的工作。

哪种方法更好?每个矿井的理解,如果计算是复杂的,在多个地方使用,我们应该接近2,否则1。这是对的吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-13 12:58:41

通常不应存储派生值,除非:

  1. 计算起来很复杂/昂贵(例如,需要从许多其他记录中得到值)
  2. 为了快速查找,需要对值进行索引。

存储派生数据称为反错误化。对于进一步的研究,您应该阅读关于为什么要正规化与非规范化数据的文章。

也请参阅这个问题:就数据库而言,“正确性规范化,性能去规范化”是一个正确的口号吗?

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43392683

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档