我正在考虑一个用例,其中应用程序的每个用户都可以使用n个不同数据类型的不同表单字段创建N个表单。每个用户然后可以以其各自的形式接收表格数据。这些数据可以被更新,编辑,搜索,排序等。用于为动态创建的表单保存表单数据的DB结构
我想知道,我如何在MySQL中为此设计数据库体系结构。
我最初的做法是将表单结构以序列化形式保存在一个表中,其中form_id作为主键。另一张表中,数据应包含列的形式:form_id,record_id,order,value。这里,顺序将是表示表单结构中字段位置的数字。值列应具有该字段的值。这种方法导致我有10行(对于具有10个字段的表单)一组记录。另外,我不认为这样的查询可以写入特定表单的搜索记录。
我的确想到在这个用例中使用mongodb,其中表单结构应该存储在一个数组中,并且在该数组中,该表单的所有记录都应该被存储。我从来没有使用过mongodb,但是我猜如果我将文档存储在文档中,mongodb会对大小产生某种限制。那么,使用MySQL(或任何其他数据库完美适用于这种用例)的最佳方法是什么?
关于您的问题的问题太多了......您是否可以缩小范围?有很多种方法可以将它存储在任何现代数据库系统中。这完全取决于数据的使用方式,使用频率以及用户数量。看起来列可能有数据类型(要进行排序,他们需要有关联的数据类型)。 (你用什么查询来试图搜索特定表单的记录?为什么他们不能被搜索? – WiredPrairie