I’m building a site and need to allow users to be able to create custom forms. The part I’m having trouble with is how to store the data from these forms. Since they are user created fields, there will be no corresponding field in the database. What would be the best way of going about this? I assume modifying the table is the incorrect way of doing so. Would putting all the data into an array, serializing it, and then storing it in a field be a good way?
Share
While that would store the data, it would not make the individual elements queryable. It’s an astoundingly bad long-term idea.
Take a look at the entity-attribute-value model. You should be able to represent the fields in a form and even the data filled in to the form using EAV backed up by some rigid foreign key checks.
Now, EAV isn’t perfect. It can be tough to create certain queries against it because of MySQL’s limitations, but that’s nothing a bit of external code can’t fix. It’ll still be ten times better than serialized data.