För ett givet scenario skulle jag:
- skapa tabellkategorier för att lagra varje kategori
- skapa tabell category_fields för att lagra varje kategorifält
- skapa tabell samlade_kategorier för att lagra all insamlad data från kategorifält i serialiserad hash
Insamlad data kan enkelt (av)serialiseras till textkolumn (oavsett vilken db-motor du kommer att använda).
Kontrollera de källor som använder ditt problem:dynamiska formulär