I'd like to design an application which will eventually fuel a configurable data-driven form.
Each user should be able to customize what fields appear in their own forms, and configure new form types to collect different sets of data.
One user may require:
- Name
- Contact Number
Another user might want:
- Name
- Organization
- Address
I've heard that the **Entity Attribute Value (EAV) ** design pattern may be appropriate for this, but in my case basically all fields are going to be known initially. New field types may be added later, but it'll be a controlled process.
Is there an advantage of using a EAV design pattern, compared to using a SQL table with ~1000 columns where each user may toggle on/off columns depending on their requirements? Does EAV have query disadvantages compared to the single table?
Is there another approach I should be taking?