Newer Version Available
What's a Relational Database?
Now you have some information stored in your database, but so what? You could easily make a list of positions using Microsoft Excel or some other spreadsheet software. For each position, you could even list the hiring manager in a field called Hiring Manager, like:
But what if a hiring manager is responsible for hiring more than one position? You would need to have duplicate records for the same hiring manager so you could capture every position for which that hiring manager is responsible, like:
This is not a good database design! Using this approach, data is repeated unnecessarily. In addition, there is really no way to capture additional information about our hiring managers, like their email addresses or phone numbers. And if we try to add information about which candidates are applying for each position, you can imagine that our simple table will quickly become extremely complex and unmanageable.
As we mentioned before, you want to create separate database tables, or objects, for each person, thing, or concept you want to track. A better way to model our scenario here would be to create one object for positions, one object for candidates, and one object for hiring managers. (Luckily, the platform has a standard object that we'll be able to use to represent our hiring managers—the User object.)
Once we have our data separated into discrete objects, we can easily relate objects to each other. This is what a relational database is all about! A relationship is an association between two or more tables. For example, we can relate positions to hiring managers so we know which positions each hiring manager is responsible for.
From a technical standpoint, each table in a relational database has a field in which the data value uniquely identifies the record. This field is called the primary key. The primary key is one part of what defines the relationship; the other part is the foreign key. A foreign key is a field whose value is the same as the primary key of another table. You can think of a foreign key as a copy of a primary key from another table. The relationship is made between two tables by matching the values of the foreign key in one table with the values of the primary key in another.
Primary and foreign keys are fundamental to the concept of relationships because they enable tables to be related to each other. As you begin building your app, you won't really need to think too much about primary keys and foreign keys. The important concept to understand here is that in a relational database, objects are related to each other through the use of common fields that define those relationships.


