There are some basic design rules which help us to build a good database. Let us discuss on those:
The main reason for designing a database is to solve a problem. So, it's very important to understand the problem and build the database so that it can fulfill the business requirements. No matter how well a database is designed, it is worthless if it doesn't solve the reporting requirements.
The main reason for having a database is to store data. While thinking about this concept, you should first consider what is required in order to fulfill the needed queries, the must have fields and after that, you can go ahead and extend the design so that it can fulfill any future requirements.