If you are going on a long hike; planning an overseas trip; building a new house; planting a garden; or doing many other things in life, one of the main questions is “What do I need?” Sometimes it is deciding what we need to take with us, while at other times it is deciding what items we should include in something we are building or buying.
At times we see people packing or carrying lots of suitcases as they prepare to leave on a journey. Sometimes when they return, we hear the stories of the difficulties of keeping track of all of the cases, and of their exasperation that much of what they took with them never even came out of the suitcases – except when they had to present them to the customs officers!
We have probably all done this at times, and maybe watched in frustration as others pick up their single case and walk easily away while we struggle with mountains of unnecessary luggage.
You may also have, as I have, experienced the situation where, despite taking mountains of luggage, have inexplicably left some essential things at home. We can find ourselves at times with many pairs of socks, but no spare trousers, or with two sun hats, but no shoes.
Sadly, we can do the same with our data modelling.
Unnecessary tables full of data that will never be used can resemble that stack of suitcases only opened to show to customs officers. Once we have data, we often have to maintain it through updates and verification, yet sometimes the best thing to do with the data would be to delete it.
How do we avoid this situation? There are several answers to this question and many different ways to make sure that we don’t get drawn into this nightmare of excess baggage. One example is the use case which reflects realistic usage of the data we are modelling.
If our data is not required to explicitly satisfy any of our use cases, we probably don’t need it. Of course, we can design use cases for creating and modifying specific data, but our use cases must always be based on practical business operations. By itself, entering and editing data is not a necessary business operation for most businesses – it only helps with necessary business operations. If use cases cannot be associated with real business needs, you don’t need the use case. And if you don’t need the use case, ask yourself the question: Do you really need the data it manipulates?