複数のフォームから送信されたデータを保存する必要があります。これらのフォームはフォームビルダーによって作成されるため、ユーザーにアクセス権を与える予定です。フォーム、またはユーザーが送信するフィールド数を指定します。私は、次のようなテーブル構造(フォーム自体を含むため、PHPとして保存される)について考えている:未知数のフィールドがmysqlに入力されました - これに最適な構造ですか?
| FormId | FormType | InputID | InputType | LongText | Text | Date |
フォームID(例えば以下)を含むのフォームファイルなどの位置を記憶する別のテーブルに関連して、入力IDは、ページの入力に関連しています。
| FormId | FormType | PathToForm | DateCompleted |...etc
入力「」フォームID 1から次のようになります。
入力に対し<input id="a" name="a" type="text" value="example"/>
「」フォームID 2から次のようになります。私はに書き込むことができます
<textarea name="a" id="a"></textarea>
このような表:
| FormId | FormType | InputID | InputType | LongText | Text | Date |
--------------------------------------------------------------------------
| 1 | 1 | a | text | NULL | example | NULL |
| 2 | 2 | a | textarea | example | NULL | NULL |
nu各フォームの「入力」の数は無制限です。異なるフォームテンプレートの入力は、毎回異なる「タイプ」である可能性があります。
私の質問(ついに!) - これは私がこれを行うことができる最良の方法ですか?私は、1行につきフォームの出力を保存することは、理想的ではないことを知っています。しかし、何百ものテーブルを持たずに、将来的に(FormTypeによると)他の方法で構造化することはできません。前にこのようなことは起こっていません。
我々が扱っているそのような製品の1つは、Gravity Formsです。彼らのデータ構造を見たいかもしれません:) –
EAVタグを参照してください - 議論がたくさんあります。 –