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

相关推荐

    工作流数据库表结构设计

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

    工作流引擎数据库表设计.docx

    工作流引擎数据库表设计全文共3页,当前为第1页。工作流引擎数据库表设计全文共3页,当前为第1页。工作流引擎数据库设计 工作流引擎数据库表设计全文共3页,当前为第1页。 工作流引擎数据库表设计全文共3页,当前为...

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

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

    自定义表单设计思路

    难点为数据绑定,也就是页面元素与数据表字段的映射,另外动态数据存储结构问题、表间数据校验和计算、建立主从表的问题是难点。 五、表单加载、表单解析、表单数据处理和表单存储功能 除了可视化表单定制工具外,...

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

    数据库表单设计与应用PPT学习教案 本资源为数据库表单设计与应用PPT学习教案,主要内容涵盖面向对象的概念、建立表单、管理表单、运行表单、常用表单控件等知识点。 一、面向对象的概念 面向对象的概念是指将数据...

    数据库基础表单设计PPT学习教案.pptx

    主要讲解了数据库的基础知识、VF6.0系统的基本操作命令、表的建立、维护、查询、统计等VF6.0系统的程序设计方法(结构化程序设计、面向对象程序设计)、表单、菜单、报表设计的方法等。通过商品进销存实例介绍VF的...

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

    管家婆数据库表 "名称 "代码 " "职员信息表 "employee " "库存商品信息表 "Ptype " "往来单位 "btype " "摘要表 "Abstract " "地区信息表 "AreaType " "会计科目表 "atypecw " "仓库信息表 "Stock " "部门信息表 ...

    政务平台数据库设计.doc

    逻辑设计 数据的逻辑分类 目前,省级政务管理平台中共包括四类逻辑存储单元:组织机构用户管理数据库、权 限访问控制管理数据库、业务表单构建数据库和业务流程构建数据库,分别用来存储平 台的基础配置数据、业务...

    ACTIVITI数据库表结构集成web设计器

    activiti 表结构 数据库 act_ activiti 集成web设计器

    数据库课程设计报告学籍管理系统.doc

    详细说明 1、数据库的建立与设计 数据库是有结构的数据集合,它与一般的数据文件不同,(其中的数据是无结构的)是一 串文字或数字流。数据库中的数据可以是文字、图象、声音等。 Access数据库由六种对象组成,它们是表...

    VFP数据库课程设计.doc

    8 3.2 建立数据库表 8 4 编写表单 9 4.1 欢迎表单 9 4.1.1 欢迎表单设计 9 4.1.2 欢迎表单代码 9 4.2 登录表单 10 4.2.1 登录表单设计 10 4.2.2 登录表单代码 12 4.3 主界面表单 12 4.3.1 主界面表单设计 12 4.3.2 ...

    表单设计器formdesign_Mydown

    2.生成数据库结构,使表单与数据库结合(支持一个表单对应多张数据库表) 3.可以应用在普通应用程序中 4.可以应用在工作流系统中(表单定制) 5.支持多种表单元素,还有类似于ms infopath 的表单元素,如节,重复节,动态...

    《ASP.NET与数据库程序设计》

    2-2-3引用NameSpace 引用设定 引用之后 ...第三章表单基本设计 ...3-1-1在网页动态显示图片 ...13-2-1数据库结构 13-2-2操作说明 13-2-3重要设计说明 附录A除错处理 附录B追踪处理

    数据库实验6数据库系统设计.doc

    概念模型设 " "理"计时采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上地设计概念 " " "结构,和自底向上的设计方法;概念模型必须用E-R图进行表示。在逻辑设计阶段,将" " "E-R图转换成关系模式,...

    职工工资管理系统 数据库

    根据系统的功能需求设计主菜单结构(具体结构参见系统中的主菜单) 4. 主要表单设计。 主要包括:浏览表单、查询表单、表单等 5. 创建项目。 将所做成的表单、数据、菜单以及所需要的图片、说明文件等加入项目管理...

    VFP数据库系统开发实例(附图)(1).doc

    程序总体结构设计 在开始程序设计之前,首先应该将程序的总体结构以层次图的形式表示出来,便于 对程序分层设计和实现。图1所示为公共计算机成绩管理系统的功能模块图。 图1公共计算机成绩管理系统功能模块 2. ...

    flowable数据库命名规则以及其数据表结构

    该文档包含描述flowable数据库命名规则以及其数据表结构文档,强力总结n个flowable数据表,可进行数据库设计的时候参考使用。适合刚接触flowable对流程不熟悉的人,官网是英文的不方便查阅,在此总结一篇flowable供...

    数据库课程设计学籍管理系统.doc

    数据库的建立与设计: 数据库是有结构的数据集合,它与一般的数据文件不同,(其中的数据是无结构的)是一串 文字或数字流。数据库中的数据可以是文字、图象、声音等。 Access数据库由六种对象组成,它们是表、查询、...

    基于Infopath实现WEB动态表单

    基于Infopath实现WEB动态表单.初次接触Infopath,我就被它的强大的功能,灵活的表单制作方式,全面对Web Services的支持等特点深深的吸引了。曾经尝试用Infopath来完成一些MIS...不能通过该工具直接对数据库结构的定义。

    基于J2EE的数据库管理支持软件系统的设计与实现

    模型和物理模型设计,然后给出了数据库表的结构设计;在详细设计部分,完成 了软件的应用框架设计,然后做了应用程序类的设计并给出了Action类的详细设 计并阐述了它完成的功能及其对应的功能模块;在系统实现部分,...

Global site tag (gtag.js) - Google Analytics