[eluser]WanWizard[/eluser]
It all depends how flexible you want to be with the different bits of information.
- if you have a finite set of fields, but some are optional, put it all in a single table
- if you have much variation, store the required fields in a master table, then use a second table for the optional fields
For absolute flexibility, you can use a repository table, which contains all optional fields. You then create a many-to-many between this table and the profile table, and use the relationship table to store the value of each optional field. This approach makes it very easy to dynamically add new fields, I use this approach in an application with user profiles, where users can add extra profile fields themselfs (like address, hobby, name of the cat, ...).