user
11/28/2022, 1:43 PMSven Balnojan
11/28/2022, 1:46 PMSven Balnojan
11/28/2022, 1:48 PMHenning Holgersen
11/28/2022, 2:34 PMtaylor
11/28/2022, 3:15 PMSven Balnojan
11/28/2022, 3:50 PMaaronsteers
11/28/2022, 8:29 PMlist_
"makes sense" as a 'list of items', while also alpha-sorting close to hist_
which is the same thing except needs to be joined with a date or version reference to avoid duplicates.
This also automatically reserves a dedicated namespace for both type 1 and type 2 (or type n) versions of all dimensions, and no users of the table will have to wonder 'is dim_customers a type 1 or type 2 table?' - since list_customers
is explicitly a list of all customers and hist_customers
is always a history of customer dim changesSven Balnojan
11/28/2022, 9:06 PMSven Balnojan
11/29/2022, 9:18 AMSven Balnojan
11/29/2022, 9:19 AMaaronsteers
11/29/2022, 4:57 PM(2) Having "one per output" tables, e.g. "report_customerchurn" and "dashboard_whatever" kind of tables. I've way too often "reused" the same table for a different report, only to change it later and forgetting that I broke like 5 more dependent reports.Agreed! I didn't list it above but I use
rpt_
for dedicated 'reports' or 'contracts' with other systems. Those are often views on top of the core dim/fact tables, and they may knowingly violate conventions about "proper" column naming and/or normalization patterns - since the point is to provide the downstream system exactly the set of columns they require. And per your point, those can't change as easily, since donwstream consumers will create a hard dependency on namings/etc.