Efficient Ways to Organize Data Models
![](https://framerusercontent.com/images/PAP7VWupxg2hFCTZqIb7ooJpwo.png)
Poom Wettayakorn
data-modeling
I've researched and curated a list of best practices for organizing data models.
Thought it'd be nice to share with y'all!
We'll focus on modular modeling, and explore the essential model layers: base, staging, intermediate, and marts (dim & facts).
Some key ideas we'll cover
Align best practices for creating data models
Pros & cons of different project structures
Structure models for a larger scale
Official docs
Project design: https://www.getdbt.com/dbt-learn/lessons/dbt-project-design
Modular modeling: https://www.getdbt.com/analytics-engineering/modular-data-modeling-technique
How to structure a project: https://docs.getdbt.com/best-practices/how-we-structure
Mesh patterns: https://docs.getdbt.com/best-practices/how-we-mesh
![Efficient ways to organize data models](https://framerusercontent.com/images/RhAVLWjJoXnJOb9VeBgBc5qEoA.png)
Data model layers
![Data model layers](https://framerusercontent.com/images/lnt4Yiiz2QHsQrOrN5dCFdRGTE.png)
Folder structure
Base = When joins are necessary to stage concepts
Staging = The shape you wish your data came in
Intermediate = Purpose-built transformation steps
Marts = Business-defined entities
Recommended blogs:
Efficient way to organize dbt models by Madison Schott
Tips on starting new dbt project by Oleg Agapov
Project Structure
![Data modeling project structure](https://framerusercontent.com/images/ah3oMeMbnmK7pCtkljgfnPzC9g.png)
Recommended blogs:
How to structure your dbt project by Paul Fry
Practical tips to get the best out of dbt by Stefano Solimito
Pros & Cons
![](https://framerusercontent.com/images/26MKUgzP3dnQUA4iMNVLAMilc8.png)
Real World Examples
Automated database diagrams from existing queries: https://getdatascale.com
![](https://framerusercontent.com/images/uBnlSdGgGYcV5l4NqCfoku2rE.png)
Multi-project Architecture
Mesh Patterns
"Mesh Patterns - empowering data teams to work independently and collaboratively; sharing data, code, and best practices without sacrificing autonomy."
"When adopting a multi-project architecture, where do you draw the lines between projects?"
Vertical splits
Horizontal splits
Hybrid
![dbt mesh patterns](https://framerusercontent.com/images/VwovEWHBMbYPGe3WBaGFYNI5UBw.png)