java - 动态表单应该如何设计数据库?
问题描述
需求是这样的
在后台管理界面录入表单信息,规定有哪些表单 (可以增删)
在前端显示哪些表单的可以填写
最后把填写的表单(产生的真实数据)存入数据库
最后填入的数据需要能够方便查询,排序,过滤的数据
我在网上找了挺多资料都不太符合我的需求。 有没有设计大神提供一下设计的思路!!!
问题解答
回答1:1、先定义一张控件表,如单行文本,多行文本,单选,多选,时间等2、再定义一张配置表,用来定义一个Form有哪些字段,以及字段名字(用来显示,如姓名,性别),控件类型,字段默认值,字段长度,是否必填等信息3、然后在后台把对应配置表添加的记录存到另一张记录表,记录表里存放的可能有多个单行文本,多个单选等记录(多余)4、接着根据记录表的信息显示Form,5、最后填写完Form提交的时候,再把填写的资料保存起来就可以了,6、当需要显示填写的资料的时候,根据配置表和Form对应的记录,把相应的资料显示在对应的控件中
补充
回答2:补充一下关于查询这块。基本思路和一楼一致。但是数据的筛选查询确实是一个问题 这样的话可以考虑加一个专门负责检索的表
id 主键自增 search_id 是数据id filed_id 是 字段 的id data 就是数据值了
当前台添加完这条数据的时候 在执行回调把 相关数据 插进这个表里 负责搜索就好了 这个表该加索引就加索引 应该够用了
回答3:最好把数据存储到mongo 如果存储关系数据库那就是个大坑,另外一定要存储一份汇总数据,然后在单独把表单数据存储一份,比如我新建了10个表单那么就存储10个集合
回答4:支持mongodb存储,像商品属性这些 各种颜色 各种尺寸的 用mongodb存储相当愉快另,不是所有查询逻辑都写在SQL端才行,有一些逻辑提取出来写在代码层你会发现性能提升不少,可以少了不少join操作。
相关文章:
1. javascript - 引入 simditor,但是显示标签,这个怎么解决。2. android - 目前有哪些用Vue.js开发移动App的方案?3. docker api 开发的端口怎么获取?4. apache - 装上IIS后WAMP就不能用了5. java - android studio的安装路径问题6. calss调用了 也设置了颜色,可是网站不显示。请问大佬是什么情况啊7. python - scrapy获取网页指定内容,后翻到下一页继续,固定循环次数。。问题8. centos6.5 安装kvm9. javascript - js写一个递归把数据结构重组成另外的结构10. cas项目起个名字