文档介绍:一种简化的数据存储方法摘要:在基于B/S架构的数据库设计中,通常存在大量不同的数据表,数据间逻辑结构复杂,检索查询效率低下。拟以一种新的思路,简化数据表存储结构,以期提高数据存取及查询效率,简化数据操作。关键词:数据存取;数据库;字符串;数组1设计思路通常在基于B/S(Browser/Server,即浏览器/服务器模式)的设计开发中,数据库设计是非常重要的环节,优秀的数据存储结构不仅能够简化对大量繁杂数据的访问,而且能够显著提高数据存取效率,简化设计人员对数据库访问的程序设计工作,从而大幅提高设计开发的工作效率[1]。一般情况下,在数据库设计中,往往使用大量数据表(table)来存储开发项目中的相关表格且呈一一对应模式。这样不仅数据量庞大,且数据间关系错综复杂,程序设计工作也因此而变得效率低下。在本文的方法中,仅使用一个数据表,将各表单数据以字符串形式存于该数据表的text字段中,即可实现繁杂的数据存储,从而大大地提高了开发同期,简化了程序设计工作。2实现方法在以往的数据库设计中,假设某设计项目需用n张表,往往在数据库中也对应设计n个数据表,如表1所示。表1数据库中与项目对应的n张数据表而本文提出的方法,仅使用一个数据表(设表名为mytable),即可实现对上述若干数据表的存储。数据表结构如表2所示。表2数据表结构[2]在B/S设计中,数据一般通过表单形式从客户端提交到服务器数据库中保存,因此,首先在客户端需要使用JavaScript脚本语言对表单数据进行编辑,形成数据字符串,再提交到数据库保存。JavaScript代码如下functiongetstr(){//调用getFormValue函数将表单内容合成字符串str=getFormValues(('myfOrm'));//=str;//();}其中,getFormValue函数如下:functiongetFormValues(fobj){varstr="";varvalueArr=null;varval="";varcmd="";varelemvalue="";varelemlength=;for(vari=0;i<elemlength;i++){varelemtype=[i].type;varelemname=[i].name;if(elemtype=="text"||elemtype=="textarea"||elemtype=="hidden"){if(elemname!="content"){//过滤content不参与编码elemvalue=[i].value;str+=elemname+"="+elemvalue;//字段名与值使用=号连接if(i!=elemlength)str+="&";//各字段间使用&符号连接}}elseif(elemtype=="select-one"){elemvalue=[i].options[