The relational architecture of the database is not an exact science, but you can convey a few general recommendations for making the right decisions. In the first option that you present, you can easily determine that there is a situation of duplicate columns. Few of your columns have the same meaning conceptually. The password column is used to enter your site, regardless of whether you are a recruiter. This will not always be considered a problem, but it is a big hint that there should be a better relational template for developing your data schema.
An excellent approach to solving such problems is to establish conceptual relationships between objects. For instance:
Users are or are not Recruiters will be 0..1 <-> 1 relationship or optional one to onePages owned by Users will be 1 <-> 1 ratio or one to oneRecruiters may have a Pages ratio of 0..1 <-> 1 or optional one to one
This exercise will help you understand how to list your entities and organize foreign keys. This is a good first step, which in your situation gives us three tables: Users , Recruiters and Pages . Please note that foreign keys for One to One have been placed in the required 1 cardinality .

Now, to determine where to place the data columns, and whether you should have new tables: a simple trick would be to write all your denormalized ones will have as such, focusing on the most educated object that you have.

This example is pretty obvious, but I still think it answers your question and your doubts about duplicating groups and columns.

At this point, I realized that I forgot to include the Companies object, which will be listed as such:

Remember again that people may not always agree with this approach, but given this small context; it was a simple train of thought. The answer you would be looking for: Column means duplication - this is a hint that you should approach your data schema differently. Here's the fiddle .
If you have any questions or think this is wrong, feel free to comment!
source share