Form Responses as Institutional Memory: Designing the Record Layer" (opens in new tab)
Most form schemas I have seen were designed for the wrong time horizon. They were designed for the moment of submission. A responses table that captures field values. A foreign key to a forms table. A few denormalized columns for created time, IP, and user agent. Maybe an is_test flag added later because someone needed it. This is fine if the only thing you ever do with a response is fire a webhook and forget. It is not fine if the team is still going to be reading those responses five years ...
Read the original article