Forum Moderators: coopster
I would like to know how you go about determing the sizes of the fields
in the DB.
how you go about determing the sizes of the fields
By determining the size of the data to be contained within them. I would think you are specifically referring to columns for storing characters.
Maybe take a look at this page which explains storage sizes for CHAR and VARCHAR column types
MySQL CHAR and VARCHAR Types [mysql.com]
So as long as your data is less than 255 chars but not always the same length then varchar makes more sense. If you have a column that will always have the same length of data (x) then go with CHAR(x) as the type.
If you have only 3 possible values then enum('val1','val2','val3') will be fine. If you have a large chunk of data that needs to stored in a single column then you need to look at BLOB and TEXT.
MySQL Column Types [mysql.com]
All that to say that it isn't much of a choice because the data to be stored tells you the format.