Software is largely about building data and transferring it between places in different ways to produce the required results. How that data is organised is therefore fundamental.
A good data model is like a well-structured book. Without a clear index, meaningful section names and logical groups, the book is difficult to read. Software data should likewise be organised so that it is understandable and usable whenever it is needed.
In application code we often call this a data structure; for databases we speak of data models and tables. Data modelling is the foundation of the solution. When the design is weak, its effects spread throughout the software.
1. Start with box diagrams
Begin by drawing simple boxes that represent the important data concepts. At this stage, do not worry about documenting every characteristic. Concentrate on identifying the main entities.
2. Elaborate the details
Gradually add the important characteristics of each data concept. This makes the model more concrete while keeping the overall structure visible.
3. Establish relationships
Connect the different concepts and identify how information moves or relates between them. Highlight the relationships that matter for the use case you are currently analysing.
4. Review and refine
Consult useful references: experienced colleagues, documentation, search resources or an AI assistant. Remove unnecessary characteristics and relationships. Some elements may need to be combined; others may need to be divided.
5. Test with sample data
Enter realistic sample data in a spreadsheet based on the proposed design. Check whether the structure makes sense, whether the relationships work and whether the information is convenient to use.
6. Apply modelling techniques
Finally, apply database normalisation or appropriate JSON-modelling techniques before integrating the design into the application. Use these techniques as tools to improve clarity and integrity, while staying mindful of the system’s real access patterns.
Final note
Every existing software data model can be improved as real-world use cases and constraints become clearer. Start with these steps and refine the model as your understanding and experience grow.
An artist who wants to draw realistic people studies human anatomy. In the same way, a developer who wants to build good software should become proficient in data modelling.