The solutions that need to address in this domain, what are the issues in this domain? The types of information that is inside the database. For example, in a human resource database for a company, you would need to model employees, know their marital status, salary, employment status, holiday periods, etc.
What type of functionality that is required? In other words, the use cases related to this data. What are the types of functionality that you need to support: maintaining and creating (delete, edit, update) items, analysis, reporting,etc.? make sure the functional requirements of the application have already defined, which is not always the case and to Make a real effort to have a high-level understanding of how the data is used hereafter. The interesting part in this is, what functionality is allowed for an employee? Should it all be basic CRUD (create, retrieve, update, delete) functionality that shall be allowed such as: editing employees when their situation or employment status ) if he/she gets married or divorced, is fired, resigns and creating new employees. Mostly you will allow only Create-Retrieve-Update functionality since the employee records may need to be kept for a very long period ( for example, ten years ) and not immediately deleted.
Now the next thing you should do is have a concept in your what you need to create and to know the types of interactions that are necessary within the data, therefore with the database. To start building the database, you need to start working with entities in the database like modeling the main entities of the system. The best part about the domain and functionality is that you can define what are the main entities in the database that are likely to be and to know what are the contents of the database, also the usage of the content.
The next plan is to understand how these entities are related. Checking which entity is linked to other entities, for example, users to the items that they have created. Several columns of the employee’s table will have a distinct value which includes their status: single, married and divorced. It is also possible to depend on the application that is creating the rows in the database, but why not used the database’s foreign keys to ensure data integrity? By this way, you can avoid having the application introduce errors into the data.
After you know the entities and relationships, you are ready to develop a mode or Entity Relationship Diagram (ERD) of the database. There are tools which will help you in the building, Vertabelo is a tool for creating the formal design. First, build a model for the database and add in the entities, Vertabelo will remind you the need to define primary keys for each table. Next step is to add relationships that you considered previously. Vertabelo is one of the tools which helps in building database models.