logoalt Hacker News

amazingamazingyesterday at 11:47 PM2 repliesview on HN

I don't disagree with your point, but over normalization and joining everywhere also isn't necessarily the answer, even with an index. there's no easy answer to this, really depends on the performance characteristics the critical user journeys need.

with a little pain, if I had to pick an extreme, I'd pick extreme normalization with materialized views that are queried (e.g. no joins), rather than joining all of the time.


Replies

srousseytoday at 12:09 AM

I typically go for 3rd normal form, and selectively denoralize where it has true performance value.

show 2 replies
williamdclttoday at 9:29 AM

> materialized views

how though? Postgres doesn't support auto-refreshing materialized views when the underlying data changes (with good reasons, it's a really hard problem)