Blog
Creating data champions, by giving people the ability to easily automate and manage a company’s entire data pipeline, to get answers instantly.
How to Model Approval Workflows in a Database
How to Model Approval Workflows in a Database Without Boolean Chaos A supplier application has been approved. Then its bank details change. Is the supplier still approved? The answer sounds like a business-policy question, but it quickly becomes a database design...
Effective Dated Reference Data: Preserve Database History
When Reference Data Changes: Designing Database Codes That Preserve History A shipping database contains an order from 2022 with the delivery method EXP. Today, EXP means “Express Delivery — next business day.” But in 2022, the same code meant “Express Delivery —...
Designing Databases When Data Sources Disagree
When Your Data Sources Disagree: Designing a Database That Preserves the Truth A company is preparing to replace three old systems with one new database. The CRM says customer 1842 is called Northstar Labs. The billing system says Northstar Laboratories Ltd. A...
External IDs in Database Design: A Practical Guide
External IDs Are Not Your IDs: Modeling Identity Across Systems A backend team adds one column to the customer table: stripe_customer_id Six months later, another integration arrives: hubspot_contact_id Then the company migrates its support platform, imports customers...
How to Model Historical Relationships in a Database
When “Current” Lies: How to Model Relationships That Change Over Time A support manager opens a customer record and sees that the account belongs to the Enterprise plan. Nothing looks wrong. Then finance asks a different question: “Which plan was this customer on when...
Database Design That Survives Change: Schemas, History, and Real-World Data
Your Schema Is Really a Theory of What Can Change A customer updates their company name. Should every invoice they have ever received change too? A product manager renames a subscription plan. Should last year’s revenue reports display the new name or the name...





