I need help. I don't know what the right way to create the table I need is. I can do it different ways, but I might be doing it a stupid way.
Here is an example of the situation I have.
I have persons. Each person has fields.
Fields could be: ShirtType, PantType, HairColor, EyeColor, ShoeType, Height, Weight, etc. I will need to add additional fields in the future.
Each person may not use all fields. (Some people would only use one field).
Should I:
- Create one table with all fields as columns, and just put data in the ones I need each time?
OR
- Create a Fields table to hold all field names. Then, create a Values table to hold values, referenced by FieldId?
The first seems less confusing, but the second wastes less space. Are NULL fields (method 1) a waste of space? Bad design? I can easily import data into the first method, but the second one I would have to add a list of values and field id, one value list at a time. Could take a while.
I apologize if this doesn't make perfect sense, but I really could use some advice.
Thanks.