> 2. You could have a table with every field that's ever been used as a nullable field and add new columns every time a new version of the form appears
Depending on your RDBMS this is not actually so bad. SQL Server has sparse column support which helps to make this sort of schema practical. It comes with some strings attached, however [1].
Depending on your RDBMS this is not actually so bad. SQL Server has sparse column support which helps to make this sort of schema practical. It comes with some strings attached, however [1].
[1] https://msdn.microsoft.com/en-AU/library/cc280604.aspx