Planning our application
We are going to build a browsable database of cat profiles. Visitors will be able to create pages for their cats and fill in basic information such as the name, date of birth, and breed of each cat. This application will implement the default Create-Retrieve-Update-Delete (CRUD) operations. We will also create an overview page with the option to filter cats by breed. All of the security, authentication, and permission features are intentionally left out, since they will be covered in the further chapters.
Entities, relationships, and attributes
Firstly, we need to define the entities of our application. In broad terms, an entity is a thing (person, place, or object) about which the application should store data. From the requirements, we can extract the following entities and attributes:
- Cats: They have a numeric identifier, a name, a date of birth, and a breed
- Breeds: They only have an identifier and a name
This information will help us when defining the database schema...