在这两种策略中,哪一种更适合计算职位的升/降票数:
这些是模型字段:
ups
downs
total
def save(self, *args, **kwargs): # Grab total value when needed
self.total = self.ups - self.downs
super.(yourmodel, self).save(*args, **kwargs)
对:
ups
downs
def total(ups, downs): # totals will just be computed when needed
return ups - downs # versus saved as a column
真的有什么不同吗?速度?风格?
谢谢
最佳答案
我会做后者。一般来说,除非计算耗时,否则我不会在数据库中存储任何可以从其他数据派生的数据。在这种情况下,这是一个微不足道的计算。原因是,如果存储派生数据,则会引入一致性错误的可能性。
注意,我对类实例也会这样做。如果可以将total
设置为属性,则无需存储它。变量越少,错误空间越小。
关于python - 哪种策略最好:将值保存为字段或仅使用一种方法进行计算,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12555646/