What is the Most Important Stage in Database Design?
Have you ever used a database that was so slow you wanted to stop using it? You hit a button to run a query and you were still waiting for results to come up a little while later. In that time it felt like you could have gone and made a cup of tea? Chances are that the reason for this is that the database was not planned properly.


Far too many people, when designing a database, either for themselves or for others, get a rough idea of what they want, and just start designing. I almost guarantee that if somebody is using a package like Access, they get an idea of 2-3 main types of queries they would want to be able to run, and already jump in and start setting up the tables of data. From there, they would usually start to design the forms, and then the queries themselves in code.

While there are things that you can later do to speed up the database performance (such as regular compact and repairs), you can never gain back what was lost through bad design.

I know, I made that mistake myself once, many years ago, and was almost permanently inundated with people asking if there were ways that we could speed the database up. Tampering with it afterwards never fully resolved the problem, and it was only when I then put in the proper planning and started from scratch did we have a database that was both fast and efficient

A simple example could be something like deciding if one of your tables that you already have would make a suitable primary key, or if you should create a new, unique, field to be used. If it is a database populated with people’s details, whether they are staff or clients, the chances are that you will struggle to find a field that could not be duplicated. Names, street names, postcodes might not all be 100% unique. In that instance, why not create a unique field with customer/personnel numbers? Or, if you do have a unique field, like booking numbers or invoice numbers, perhaps that could be used. Either way, if you plan this properly rather than rush in, it will save everybody time later.

Save Time

Another crucial aspect of planning is that you only put in and design it to load what is necessary. Are you bringing up fields that are unnecessary for your current query just because you can? If you had decided properly up front what you wanted a form to save, and what queries you wanted to extract what exact information you need, you would save time on unnecessary queries being written, but then also every time the query ran.

So, even if you have been taught how to use something like Access by a friend, did they show you how to PLAN properly? If not, you are missing the most important step in the whole process. Or, maybe you have played around and taught yourself? Again, chances are that you have not learnt how to plan the database properly.

So, before you go and spend all that time setting it up, why not learn to do it correctly from the start? I bet it will save both time and money, for you and for your colleagues!