入力フォームとは以下のようなものを指す。
これらの機能はユーザーとサービスの接点になることから仕様変更が非常に発生しやすい。
この事から、入力フォームのデータを保存するテーブルは初期の仕様を元に正規化するよりも、最初から仕様変更があるものと踏まえた上で非正規化テーブルで設計した方が仕様変更へ柔軟に対応できるため、開発効率的に有利である。
ただし、非正規形テーブルとして設計する際も以下の制約は守るべきである。
フォームデータのテーブルを非正規形テーブルとして扱うとフィールド数が膨大な数になるが、他テーブルから外部参照されないことが保証されていれば、単なるログテーブルでしかないので設計が複雑化することはない。
また、非正規形テーブルである以上、入力データの相関関係に関するバリデーションはプログラム側で行う必要がある。
とはいえ、MogoDBなどドキュメントDBが使えるのであれば、そちらを使った方がよい。