In this chapter, we will discuss the following topics:
- The importance of models
- Class diagrams
- Model structural patterns
- Model behavioral patterns
- Migrations
I was once consulted by a data analytics start-up in their early stages. Despite data retrieval being limited to a window of recent data, they had performance issues with page load sometimes taking several seconds. After analyzing their architecture, the problem seemed to be in their data model. However, migrating and transforming petabytes of structured live data seemed impossible.
"Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won't usually need your flowcharts; they'll be obvious."
— Fred Brooks, The Mythical Man-month
Traditionally, designing code around well thought-out data is always recommended...