I'm trying to decide between having 1 enormous table for all the possible data about a user, a lot of which won't apply to every user, and then having a separate table for the data that a user can have multiple instances of (for example, previous jobs) versus having the data about each user distributed between multiple tables.
The first way is more streamlined but I feel like it would use a ton of unnecessary overhead, whereas the second way results is easier to work with but results in a lot of extra database queries.
Multiple instances of some associated thing always go into another table. This process is called normalization.
While it may seem more complicated at first glance, it will make your life easier in the long run. Database systems like MySQL make short work of combining the tables back together again (denormalizing), if needed (provided your key fields are properly indexed).
It's much harder to work with denormalized tables like the one you described, for a number of reasons. Let's say a
Personhas more than one address. How would you put that into the main table?Address1,Address2,Address3? What if the person has four different addresses?Working with such a table is going to be much harder, because you now have to deal with three columns in the table instead of one, in every query you write.