0 0

动态表单的数据库结构设计30

利用在线编辑器设计的表单,包含输入框,明细表(动态添加行)等需要存储到数据库的信息,现在有三种思路:

1.一个表单对应数据库的一张或多张物理表(主从表),这种设计在很多业务的情况下,其数据库的物理表会不断膨胀,同时,当修改表单时,其对应的物理表结构也需要修改,当物理表很多数据时,改变物理表scheme会锁表,导致在线应用访问这些表。

2.利用横向表纵向存储的思路,即一张物理表保存的是所有表单对应的字段信息和对应的值,这样的好处就是扩展表单(如添加一个字段)时只需要往这样表插入一条数据,但随着表单的增加,这张表的信息量将成倍数级增长,同时对后边数据的呈现,数据的统计查询造成很大影响。

3.利用现在的无scheme数据库及nosql数据库进行表单字段及值(key:value)的存储,这样修改表单很方便,但对于数据存储每次都需要解析html有哪些字段(key)需要存储到数据库,还有其值是什么,同时,对于后面的数据统计,报表展现也难以实现,因为向mongodb这样的数据库,对数据统计的功能还是非常弱的。

有哪位大牛做过类似的动态表单设计器,可以说一下你的实现思路吗?

2013年1月16日 11:31

2个答案 按时间排序 按投票排序

0 0

第一种方式就当做没发生过吧
第三种的话其实是不错的方式,接触过类似的国外站点,完全基于nosql的数据库,方便扩展,很多高级的数据库对报表支持也不弱
第二种方式可以稍微细致说一说,很多市面上的自定义报表软件或者工具都是基于此设计的,曾经做过相关项目,对复杂表单的支持稍微弱一点,基础表单还是没有问题的,设计模仿数据库的设计,定义表(CustomTableConfig),定义表字段(CustomTableFieldConfig),然后有一张实例表(TableInstance)和实例属性表(tableFiledInstance),fieldInstance指向TableInstance和fiedConfig,fiedConfig和tableInstance指向tableConfig,field要有字段类型,字段名称,字段长度,字段编号等属性,可以扩展自动更新和ID自增长等属性。表实例其实就相当于表的记录了。可以针对这个设计对crud进行一定封装,已达到与数据库操作相一致的效果。如果要扩展关联表,楼主可以进一步创建一个外键配置表和一个外键实例表,不过支持复杂表结构的话,上面提到的封装会复杂许多

2013年1月16日 14:13
0 0

有一种方案,类似你的第二种方式吧,但是也有缺点。准备两张表。一张用来做横表,表A,扩展表单时(如添加一个字段),就往这表里插入一条数据。
另一张表。表B,用来正常存储数据,字段名不再是和业务有关的,全部用类似key1,key2,key3……等等,和表A中表单field name一一对应,表2的列可以预先准备n列,如果表2的列不够用了,再在程序中动态添加m列。

先说优点吧,相比你第一个方案,大大减少了修改表结构的次数,甚至预先准备的列够用的话,不需要修改表结构了。然后由于存储数据的表2依然是常见的关系型结构,所以对于数据统计查询的核心sql不会造成影响。

特别提到核心sql不受影响,因为这个方案缺点也很明显。每次查询都要做一个从表A到表B的关联。先从表A从获取你想select的表名,以及哪些key1, key2, key5, key6 。。。  然后根据这些从表2中拿数据。还是有点小麻烦的。

2013年1月16日 14:02

相关推荐

    JAVA动态表单设计,自定义表单,自定义数据

    总的来说,"JAVA动态表单设计,自定义表单,自定义数据"涉及的技术栈包括Java后端开发、前端界面设计、数据库管理和RESTful API设计。通过以上各模块的协同工作,可以构建出一个高效、易用的动态表单系统,满足不同...

    工作流数据库表结构设计

    工作流就是业务流程的计算机化或自动化。许多公司采用纸张表单,手工传递的方式,一级一级审批签字,工作效率非常低下,对于统计报表功能则不能实现。...:::本资源包含了工作流所涉及的表结构设计。:::

    数据库课程设计(包括如何创建表单,创建系统数据库,连编,还有一个完好的应用程序,很好用的)

    在创建数据库时,你需要定义数据库的结构,包括数据表的字段、数据类型、主键等。数据库的规范化设计至关重要,可以有效避免数据冗余和不一致性。此外,VF还允许设置数据库的完整性规则,如实体完整性、参照完整性和...

    数据库基础表单设计.pptx

    数据库基础表单设计是数据库应用基础的重要组成部分,涉及到数据库的基础知识、数据库操作程序设计、VF基础知识、表单设计方法等。以下是数据库基础表单设计的详细知识点: 一、数据库基础知识 数据库基础知识是...

    日志发布系统_静态页面和数据库结构设计

    在构建一个日志发布系统时,静态页面设计和数据库结构设计是两个至关重要的环节。静态页面设计关乎用户体验,而数据库设计则直接影响系统的性能和数据管理的效率。下面将详细阐述这两个方面及其相关知识点。 首先,...

    数据库程序设计表单设计与应用PPT学习教案.pptx

    【数据库程序设计表单设计与应用】的知识点主要围绕面向对象的概念、Visual FoxPro的基类、表单设计以及事件处理展开。 1. **面向对象的概念** - 对象(Object)是现实世界中实体的抽象,它可以是具体的事物,也...

    动态表单的简单实现

    5. 数据库脚本:用于创建和操作表单数据的数据库结构。 在实际项目中,动态表单可能还需要考虑更多方面,如权限管理(谁可以创建、编辑表单),表单版本控制(保存历史版本),以及更复杂的表单逻辑(如条件性显示...

    留言板的jsp代码+数据库设计+页面结构

    本资源是一个完整的留言板程序代码,包括jsp代码、数据库设计和页面结构设计。下面将对这三个部分进行详细的解释。 一、数据库设计 数据库是留言板程序的核心部分,它存储了所有的留言信息。在本程序中,我们使用...

    前后端分离的终端自适应动态表单设计1

    综上所述,本文探讨了在Web开发中采用前后端分离模式的动态表单设计,结合Vue.js和Spring MVC实现前端和后端的功能,利用NoSQL数据库处理动态数据需求,并通过响应式设计确保表单在不同终端上的良好表现。...

    数据库表单设计与应用.ppt

    "数据库表单设计与应用" 数据库表单设计与应用是指在数据库系统中设计和应用表单的过程。这包括了对对象的概念、表单的设计和应用、控件的使用、事件的处理等方面。 首先,需要了解对对象的概念。对对象是指在客观...

    管家婆数据库表数据结构.doc

    综上所述,管家婆数据库表数据结构设计精细,覆盖了企业管理的各个方面,从人力资源到财务会计,再到库存和销售,为企业提供了全面的数据支撑。理解并熟练运用这些数据结构,将极大地提升企业的管理效率和决策精度。

    模板:YY系统_数据库结构设计说明书1

    本数据库结构设计说明书的主要目的是为YY系统提供一套完整的数据管理框架,确保系统的数据存储、处理和检索能够高效、准确地进行。设计中将详细阐述各个数据库表的设计细节,包括表的名称、字段属性、数据类型以及...

    数据库课程设计-前端+后端实现用户登录等一系列操作(源码)

    数据库课程设计是IT学习中的一个重要环节,它涵盖了前端与后端的综合应用,旨在让学生掌握实际的项目开发流程。在这个项目中,我们将讨论如何通过前端和后端技术实现用户登录功能,以及其他相关操作。源码的提供使得...

    工作流动态表单设计图(jbpm)

    在jbpm中,设计动态表单通常包括以下步骤: 1. **定义流程模型**:使用jbpm提供的建模工具,如Eclipse插件或jBPM Workbench,创建符合BPMN 2.0规范的流程模型。 2. **设计表单模板**:创建可配置的表单模板,包括...

    网络课程设计(动态网页设计 access数据库)

    在课程实践中,你可能会学习如何创建数据库、设计表结构、设置数据关系,以及如何在网页中嵌入表单来收集用户输入,并通过后台程序处理这些数据,实现数据的存储和检索。同时,还会涉及到安全性问题,如防止SQL注入...

    oracle导出数据库表结构到word文档中

    Oracle数据库表结构导出器是一套用来完成将Oracle数据库中的表结构导出成Word文档,并输出标准的打印报表格式的软件。亲测oracle绝对好使 ,另附有链接信息,请先看好说明再操作.不会的加我qq87611894

    网上书店管理系统 数据库系统设计

    在概念结构设计阶段,需要明确各实体(如图书、读者、订单等)及其之间的关系。逻辑设计阶段,这些实体被转化为具体的数据库表,包括字段定义、数据类型选择以及表间关联的建立。物理设计则涉及到数据库的实际存储...

    数据库毕业设计 SQLServer

    - 实体关系模型(ER模型):在设计阶段,通常会先画出ER图,定义实体、属性和关系,为后续的表结构设计提供基础。 - 数据库模式:根据ER模型转换成逻辑数据库模式,确定表结构、主键、外键等。 - 正确性与性能:...

    数据库应用程序设计教程

    2. **表设计**: 表是数据库的核心,需要设计合理的数据结构以满足业务需求。字段类型、长度、默认值和约束(如主键、外键)都是设计时要考虑的关键因素。在VFP中,我们可以使用表单(Form)和字段控件来直观地创建和...

    数据库课程设计订单生成系统代码+数据库+实验报告

    HTML用于构建页面结构,CSS用于样式设计,JavaScript则用于实现交互功能,如表单验证、动态加载数据等。 4. **后端开发**:后端负责处理前端请求,与数据库交互。常见的后端技术有Java(Spring Boot框架)、Python...

Global site tag (gtag.js) - Google Analytics