需求是这样的

在后台管理界面录入表单信息,规定有哪些表单 (可以增删)

5a0aec024fe85908e8c82fcbfb46f00c.png

在前端显示哪些表单的可以填写

最后把填写的表单(产生的真实数据)存入数据库

最后填入的数据需要能够方便查询,排序,过滤的数据

我在网上找了挺多资料都不太符合我的需求。

有没有设计大神提供一下设计的思路!!!

回答

1、先定义一张控件表,如单行文本,多行文本,单选,多选,时间等

2、再定义一张配置表,用来定义一个Form有哪些字段,以及字段名字(用来显示,如姓名,性别),控件类型,字段默认值,字段长度,是否必填等信息

3、然后在后台把对应配置表添加的记录存到另一张记录表,记录表里存放的可能有多个单行文本,多个单选等记录(多余)

4、接着根据记录表的信息显示Form,

5、最后填写完Form提交的时候,再把填写的资料保存起来就可以了,

6、当需要显示填写的资料的时候,根据配置表和Form对应的记录,把相应的资料显示在对应的控件中

补充

3d8283dcd65051d9a1efe3da1489e5e2.png

补充一下关于查询这块。基本思路和一楼一致。但是数据的筛选查询确实是一个问题 这样的话可以考虑加一个专门负责检索的表

3830d96206ed98bbe0f46b2e16d68f01.png

id 主键自增 search_id 是数据id filed_id 是 字段 的id data 就是数据值了

当前台添加完这条数据的时候 在执行回调把 相关数据 插进这个表里 负责搜索就好了 这个表该加索引就加索引

应该够用了

最好把数据存储到mongo 如果存储关系数据库那就是个大坑,另外一定要存储一份汇总数据,然后在单独把表单数据存储一份,比如我新建了10个表单那么就存储10个集合

支持mongodb存储,像商品属性这些 各种颜色 各种尺寸的 用mongodb存储相当愉快

另,不是所有查询逻辑都写在SQL端才行,有一些逻辑提取出来写在代码层你会发现性能提升不少,可以少了不少join操作。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐