小编Ada*_*son的帖子

在数据库中存储计算数据的错误做法?

将计算出的数据存储在每一行中是不好的做法,还是每次从数据库读取时在应用程序层进行计算更好。

存储在数据库中避免了多次计算的需要,但如果出现错误,则需要更新数据,而不仅仅是更改应用程序级别的计算。

我认为后者更好,但是有一般的经验法则吗?

例如,我需要计算食物的每日总营养摄入量。因此,各种portionsenergyfoods。我可以portion根据相应计算能量food并将energy每个的能量存储portionportions表中,或者我可以food每次从与相应的连接中计算。

您可以想象,如果您必须在很长一段时间内计算年平均值、月平均值、日平均值等,它可能会变得非常笨拙。

如果使用物化视图,每次旧数据(例如一周或更早)根据触发器或类似内容进行更新时都会重新计算,那又如何呢?

best-practices computed-column

11
推荐指数
3
解决办法
7834
查看次数

归一化或不归一化

总的来说,我知道即使有加入成本,规范化通常也是有益的。然而,我最近想到了一个有趣的困境。

如果数据重复但不太可能改变怎么办。这是可能的,但我不会预料到。

我有一个nutrients表,一unit列和单位将gkgug,等。

我看不到这些值每次都在变化。

我很想将它们作为表中的一列,而不是规范化并拥有一个units表并使用外键并且在从nutrients表中获取一行时必须加入。同时,我知道总的来说,即使有加入币,我们也应该正常化。

我应该怎么做(以及为什么)?

postgresql normalization database-design

5
推荐指数
1
解决办法
2732
查看次数