I\'ve got a database which will store profiles about individuals. These individuals have about 50 possible fields.
Some are common things like, first name, last nam
I would recommend few tables. Over normalization is difficult to manage and you would end up writing complex queries which ends up with slow performance.
Normalize only when absolutely needed and think in logical terms. With the limited information you provided above, I would go for three tables:
Table 1: PersonalDetails Table 2: Activities Table 3: Miscellaneous
There are other techniques to speed up the performance like clustering etc., which you can use depending upon your need.