I have never made a database with the ability for an administrator (meaning, a admin client using the front end interface) to create custom fields for an entry.
Thinking this through, I think it might make sense to create a table called custom_fields with information about any new fields that will be created (like date created, field name, field type etc).
Then, create a new table for that field and link new records to it's corresponding record on the original table.
I think it makes sense because I won't be altering the original records, rather just adding to new ones.
Does this make sense? I haven't found anyone online that suggests this (as far as I saw).