I would use a combination of 1 and 2. If you often add attributes, I don't think you have a data requirements descriptor.
I see that some added attributes belong to another table. If you keep adding attributes like certified Java, asp certified ..., you need a certification table. This may be relevant to the certification code table, which lists the available certificates.
Attributes, such as a manager, can be either an attribute or a relationship table. If you have several relationships between employees, then consider the relationship table with the type of release. Organizations with a matrix management structure will require a distribution table.
Addresses and phone numbers often go in separate tables. An address key, such as employee_id, address_type, would be appropriate. If you need a story, add a start_date column to the key.
If you are saving history, I recommend using the start_date and end_date columns in the respective columns. I am trying to use relationships in which the record is active when 'start_date <= date-being-Consider <end_date' is true. Attributes such as weight, eye color, etc.
source share