アプリケーションのすべてのユーザーが、異なるデータ型のn個の異なるフォームフィールドを持つN個のフォームを作成できるユースケースを検討しています。その後、各ユーザーはそれぞれのフォームでフォームデータを受け取ることができます。このデータは、更新、編集、検索、並べ替えなどができます。
MySQLでこのためのDBアーキテクチャを設計するにはどうすればよいのでしょうか。
私の最初のアプローチは、form_idを主キーとして1つのテーブルにシリアル化された形式でフォーム構造を保存することでした。別のテーブルであるデータは、form_id、record_id、order、valueの列を持つレコードを保持する必要があります。ここで、順序は、フォーム構造内のフィールドの位置を示す番号になります。値の列には、そのフィールドの値が含まれます。このアプローチにより、1セットのレコードに対して10行(10フィールドのフォームの場合)ができました。また、特定のフォームのレコードを検索するためにそのようなクエリを作成することはできないと思います。
このユースケースでmongodbを使用することを考えました。このユースケースでは、フォーム構造が配列に格納され、その配列内に、その特定のフォームのすべてのレコードが格納されます。私はmongodbを使用したことがありませんが、ドキュメントをドキュメント内に保存する場合、mongodbにはサイズに何らかの制限があると思います。したがって、MySQL(またはそのようなユースケースに最適な他のDB)を使用してこれを行うための最良の方法は何ですか?