Philipp Matuschka 3/8/2018 7:34:13 AM
With that more detailed description I could see myself in favour and in fact I think one would end up with the following options. each of which would be ticked or unticked
- default - only do the calculation on initial creation of the record. I have found myself writing code in the default/calculate formula to ensure this as I DO want an initial default but I DO NOT want the then entered value to later change as a result of calculate. I raised a comment or query or something about this years ago.
- calculate - IE as described by you when any of the directly or indirectly referenced "regular" columns in the same record change, the value of this column is also recalculated (this is today's behaviour)
- cache - as suggested by you, when any referenced data anywhere in the database changes, the value of this column is also recalculated. The rationale for this is as originally defined by you and in my case mainly where I am showing list of records in Views. My work around today is time dependent triggers which update "regular" columns from formula, lookup or selection columns, but
a) it requires careful management of triggers and
b) can show out of date data in the first few minutes.
I do appreciate that the third option means trading off "on screen" performance against "background" performance and I have noticed that other aspects of my DB slow down depending on how many time dependent triggers I have. Maybe the team at Foresoft have some good ideas on how to improve this.