我的编程空间,编程开发者的网络收藏夹
学习永远不晚

【自定义表单】自定义表单设计

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

【自定义表单】自定义表单设计

1.后端设计1

diy_field_pool      字段池(我们定义好的字段类型)diy_form            表单表(记录用户自定义的表单)diy_form_field      表单字段表(记录某张表单中有哪些字段)diy_form_entity     表单实例表(记录某张表单中的某条数据实例)diy_form_data       表单数据表(记录某张表单在某条实例下,哪些字段对应的数据)
  • 系统初始化字段池
    我们提供一批预定义的字段类型,初始化数据到diy_field_pool表中,用户也能自己定义自己的字段池。

  • 用户创建自定义表单
    用户通过选用字段池(diy_field_pool表)中提供的字段,创建一张自定义表单,表单的属性信息记录在diy_form表中,表单包含的字段(从字段池中选好的字段)记录在diy_form_field表中。这样用户就创建了一张自定义表单。

  • 用户填写表单
    用户使用创建好的表单填写数据,每新增一条数据,在diy_form_entity表就会新增一条记录,该表单中有几个field,就会同时在diy_form_data表中新增几条 data 数据。数据结构关系如下图所示:

//1.CREATE TABLE `diy_field_pool` (  `id` bigint(20) NOT NULL COMMENT '主键id',  `field_type` varchar(32) NOT NULL COMMENT '字段类型',  `field_type_name` varchar(32) NOT NULL COMMENT '字段类型名称'  PRIMARY KEY (`id`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='字段池';//2.CREATE TABLE `diy_form` (  `id` bigint(20) NOT NULL COMMENT '主键id',  `form_code` varchar(32) NOT NULL COMMENT '表单code',  `form_name` varchar(32) NOT NULL COMMENT '表单名称'  PRIMARY KEY (`id`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='表单表';//3.CREATE TABLE `diy_form_data` (  `id` bigint(20) NOT NULL COMMENT '主键id',  `form_id` bigint(20) NOT NULL COMMENT 'diy_form表id',  `entity_id` bigint(20) NOT NULL COMMENT 'diy_form_entity表id',  `field_id` bigint(20) NOT NULL COMMENT 'diy_form_field表id',  `value` varchar(512) NOT NULL COMMENT '数据值'  PRIMARY KEY (`id`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='表单数据表';//4.CREATE TABLE `diy_form_entity` (  `id` bigint(20) NOT NULL COMMENT '主键id',  `form_id` bigint(20) NOT NULL COMMENT 'diy_form表id',  `entity_code` varchar(32) NOT NULL COMMENT '实例code',  `entity_name` varchar(32) NOT NULL COMMENT '实例名称'  PRIMARY KEY (`id`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='表单实例表';//5.CREATE TABLE `diy_form_field` (  `id` bigint(20) NOT NULL COMMENT '主键id',  `form_id` bigint(20) NOT NULL COMMENT 'diy_form表id',  `field_pool_id` bigint(20) NOT NULL COMMENT 'diy_field_pool表id',  `form_field_code` varchar(32) NOT NULL COMMENT '表单code',  `form_field_name` varchar(32) NOT NULL COMMENT '表单名称'  PRIMARY KEY (`id`) USING BTREE) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC COMMENT='表单字段表';
// 1.分页查询sqlSELECT li.id,dff.form_field_code,dff.form_field_name,dfd.`value` FROM (SELECT dfe.id, dfe.entity_code FROM diy_form df LEFT JOIN diy_form_entity dfe ON dfe.form_id = df.idWHERE df.form_code='product_info'LIMIT 0,1) liLEFT JOIN diy_form_data dfd ON li.id = dfd.entity_idLEFT JOIN diy_form_field dff ON dfd.field_id=dff.id

来源地址:https://blog.csdn.net/qq_41466440/article/details/129447452

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

【自定义表单】自定义表单设计

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

【自定义表单】自定义表单设计

1.后端设计1 diy_field_pool 字段池(我们定义好的字段类型)diy_form 表单表(记录用户自定义的表单)diy_form_field 表单字段表(记录某张表单中有哪些字段)diy
2023-08-21

JAVA怎么自定义表单系统

要自定义表单系统,您可以按照以下步骤进行操作:1. 定义表单字段:确定您需要的表单字段,例如文本输入框、复选框、下拉列表等。您可以创建一个表单字段类来表示每个字段,包含字段名称、字段类型、验证规则等属性。```javapublic clas
2023-08-12

自定义drupal注册表单的方法

本文实例讲述了自定义drupal注册表单的方法。分享给大家供大家参考。具体实现方法如下: drupal默认用户注册表单中只有用户名称,帐号密码,邮箱等字段,如果想对用户做一些好的交互,必须要用到用户一些稍微详细的信息,而drupal的hoo
2022-06-12

C++如何自定义单向链表ListNode

小编给大家分享一下C++如何自定义单向链表ListNode,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 链表有两种: 1、带头结点,头结点存放的是链表的长度,从
2023-06-29

Python中Django 后台自定义表单控件

在 django 中我们可以在 admin.py 中添加 ModelAdmin,这样就能很方便地在后台进行增删改查的操作。然而,对应 Model 生成的表单,并不友好,我们希望能像前端开发一样做出各种类型的控件,这就得对其后台的表单进行自定
2022-06-04

antdform表单如何处理自定义组件

这篇文章主要介绍了antdform表单如何处理自定义组件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-05-17

Android实现Ant Design 自定义表单组件

Ant Design 组件提供了Input,InputNumber,Radio,Select,uplod等表单组件,但实际开发中这是不能满足需求,同时我们希望可以继续使用Form提供的验证和提示等方法(使用起来确实很爽),这时需要自己动手封
2023-05-31

VueElementUI表单自定义校验规则及使用

这篇文章主要介绍了VueElementUI表单自定义效验规则及使用,文中通过代码介绍了常见表单效验规则,代码简单易懂,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
2023-02-22

python Django框架实现自定义表单提交

除了使用Django内置表单,有时往往我们需要自定义表单。对于自定义表单Post方式提交往往会带来由CSRF(跨站请求伪造)产生的错误"CSRF verification failed. Request aborted." 本篇文章主要针对
2022-06-04

antdform表单中如何嵌套自定义组件

这篇文章主要介绍了antdform表单中如何嵌套自定义组件问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2023-03-12

SpringSecurity自定义Form表单使用方法讲解

这篇文章主要介绍了SpringSecurity自定义Form表单使用方法,虽然SpringSecurity提供了默认的登录表单,实际项目里肯定是不可以直接使用的,当然SpringSecurity也提供了自定义登录表单的功能
2023-01-17

antdvvueupload自定义上传结合表单提交方式

这篇文章主要介绍了antdvvueupload自定义上传结合表单提交方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

validator自定义表单验证的方法是什么

Validator自定义表单验证的方法是使用`Validator`类的`extend`方法来扩展自定义的验证规则。使用`extend`方法时,需要传入两个参数:自定义验证规则的名称和一个回调函数。回调函数接收三个参数:要验证的字段的值、字段
2023-08-14

VueelementUI自定义表单模板组件功能实现

在项目开发中,我们会遇到这种需求,在管理后台添加自定义表单,在指定的页面使用定义好的表单,这篇文章主要介绍了VueelementUI自定义表单模板组件,需要的朋友可以参考下
2022-12-24

antd form表单中怎么嵌套自定义组件

本篇内容主要讲解“antd form表单中怎么嵌套自定义组件”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“antd form表单中怎么嵌套自定义组件”吧!表单部分
2023-07-05

织梦dedecms中自定义表单必填项的设置方法

本文实例讲述了织梦dedecms中自定义表单必填项的设置方法。分享给大家供大家参考。具体实现方法如下: 先说下,已经试过确定有效: 1.编辑器打开\plus\diy.php 2.在40行左右找到此行代码: $dede_fields = em
2022-06-12

编程热搜

目录