我正在考虑一个用例,其中应用程序的每个用户都可以创建 N 个具有不同数据类型的不同表单字段的表单。然后,每个用户都可以在他们各自的表单中接收表单数据。然后可以更新、编辑、搜索、排序等数据。
我想知道,如何在 MySQL 中为此设计数据库架构。
我最初的方法是将表单结构以序列化形式保存在一个表中,其中 form_id 作为主键。另一个表,数据应包含以下列的记录:form_id,record_id,order,value。在这里, order 将是表示字段在表单结构中的位置的数字。value 列应具有该字段的值。这种方法使我有 10 行(对于具有 10 个字段的表单)用于 1 组记录。另外,我不认为可以编写这样的查询来搜索特定表单的记录。
我确实想过在这个用例中使用 mongodb,其中表单结构应存储在一个数组中,并且在该数组中,应存储该特定表单的所有记录。我从来没有使用过 mongodb,但我猜想 mongodb 对大小有某种限制,如果我将文档存储在一个文档中。那么,使用 MySQL(或任何其他适合此类用例的数据库)的最佳方法是什么?