自定义表单及如何按自定义内容排序的问题

有这么一个场景
用户可以在网站中生成自定义的表单
比如
姓名、联系方式、年龄
均为自定义内容且个数不限
现在有这么一个问题
数据库中如何存储这些字段?
提取数据的时候如何按照某个字段进行排序?

阅读 3.9k
2 个回答

如果你使用的是mongodb,那么是可以自定义内容的,mongodb数据库,不限制每条记录的字段个数,然后同样支持按照某个,某几个字段聚合、查询、排序等操作。

如果使用的是mysql、postgreSQL等关系型数据库,那么做到支持自定义内容而且个数不限不难做到。将这些自定义内容当做一个json对象,转成字符串之后,赋值给数据库表的一个字段即可。例如

字段 name: 'Tom'
字段 detail: '{"addr": "China", "age": 18}'

json数据的序列化和反序列化,所有的语言包括python,java、nodejs等支持都是非常好的。
不过,根据字段排序,就很难做了,需要加载到内存中,构造出原来的对象,才可以做到。不能像mongodb一样,使用数据库查询语言就能做到。

要看你的用户能够插入那些内容,比如你说的均为自定义内容且个数不限,这就可能存在问题,如果自定义表单,你根据什么给表单的加name

所以还是要看,是否是真的完全自定义,连表单的name都是自定义的。

还是在有限的表单内选择一些表单填写。

还是有限的表单内选择一些表单填写,但是整体可重复。比如添加联系人这种操作,可能添加好几个,联系人的信息也可能有的填写有的不填写。

这几种情况是不一样的。

最好的方式我觉得可以进行数据的格式化,比如抽成json字符串存储。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题