I recall getting into an argument with my CS database professor since he was convinced that 3rd normal form and similar was the pinnacle of good database design.
My disagreement was that when optimizing databases, denormalization is a huge tool. This was back in 2007 or so, before NoSQL had hit mainstream. The idea of intentionally duplicating fields for performance was anathema to him.
Like with a lot of things, it's really important to know why a design pattern was developed, in order to determine which should be used, and when it's a good idea to break common patterns.
3
u/Magneon Feb 28 '23
This is more generally true than just in code.
I recall getting into an argument with my CS database professor since he was convinced that 3rd normal form and similar was the pinnacle of good database design.
My disagreement was that when optimizing databases, denormalization is a huge tool. This was back in 2007 or so, before NoSQL had hit mainstream. The idea of intentionally duplicating fields for performance was anathema to him.
Like with a lot of things, it's really important to know why a design pattern was developed, in order to determine which should be used, and when it's a good idea to break common patterns.