I apologize if this is just another way of asking about storage space on a MySQL table such as these: NULL in MySQL (Performance & Storage)
but my question really pertains to best practice.
The Problem
Let's assume I have a table which collects all 'necessary' information from a customer at a given point in time. 12 months down the road, I realize I would also like to capture the person's date of birth and gender if they wish to supply it (the number of fields is somewhat irrelevant but understand it could be one or 50 additional fields).
Is it best practice to add the new fields into my existing table, setting and allowing all initial values to be NULL, then updating existing records with the new data
OR
create a new table(s) and establish a relationship with the primary table based on the presence of the primary key?