You are viewing our older product's guide. Click here for the documentation of GoodData Cloud, our latest and most advanced product.
Do Not Overnormalize Your Schema
For a columnar database engine, denormalization is cheap from a storage point of view, while table joins are expensive.
Example:
When storing the history of changes, store all columns of record versions in the same table as the source data, instead of retaining the history of each column in an extra table, to avoid table joins.