2008-04-03 09:51:17 来源:凌辉博客
客户向浏览器发出请求,浏览器根据用户的请求作出相应的响应。服务器端需要知道用户的请求信息,寻找相应的Sql语句,执行数据库查询。在以XML为传输标准的前提下,整个网站的所有的SQL语句可以存放在一个XML文档中,系统在加载的过程中一次性加载。在以后的使用中不用再次读取文档,解析文档,节省IO,在普通的系统中,需要用到的SQL语句不会超过100句,把他们全部存储在XML文档中不会超过5k,这一点的空间开销对于现在的计算机的内存来说并不大,但是这一点点的额外开销却为整个系统节省了许多时间,对系统的影响就是在启动的时候稍微慢了一点点。
XML的设计至少能满足系统对数据查询的需求,在整个系统中用到的SQL语句大致可以分为以下的几种
1. 向一个表中插入一条数据。
2. 向一个表中插入多条数据。
3. 向一个表中插入一条数据,同时向另外相关的表中插入一条或多条数据,需要保存第一个表中的主键,
4. 从一个表中选择数据,需要对<select>翻译,提供查询条件,并且分页,统计总数
5. 从一个表中选择数据,需要对<select>翻译并且时向提供一个数据列的统计。
对于以上的需求,其中的一个解决方案包括:
Select 和dselect的解决方案:由于整个系统中使用的<select>下拉框的数据都是常用的数据,可以把这些数据作为字典来维护,称为系统常用字典表sys_dic(system_dictionary),里面的数据供查询使用,主要包括三个列,dispText(display Text),(textvalue)relValue(relative Value),dicName(Dictionary Name)字典名字,字典在数据库中表现可能如下(汽车,qiche,运输工具), (火车,qiche,运输工具)。系统中经常使用的字典信息不会很多,占用的内存也不是很大,系统在加载的过程中,一次性把所有用到的字典信息都加载在内存中,以便于以后翻译使用,以少量的内存换取大量的时间。表内的信息在修改和查看的过程中需要根据自己保存的内容再次关联另外的表的操作才能查看信息,在表的重用方面显得不够方便,鉴于字典的字段的内容不大,可以把字典相关值和现实的内容都保存在表中。主要包括有select中的value和text可以分别命名为JTGJ,JTGJ_disp,对于动态选择的内容来说可能就比较复杂,但是动态选择的内容也包括两个数据项,其中一个是关键字,另外的一个是显示的内容,不妨也保存两个字段,在维护的时候统一维护两个字段。维护两个字段不如维护一个字段方便,综合考虑人们常用的操作,在信息输入一次之后,修改得可能性不大,即使修改了另外的字段,用户可以在下次的修改过程中纠正过来。一般来说,用户发现输入错误之后会立即纠正过来,不会在发现错误之后视而不见。
向一个表中插入一条数据比较简单,可以根据数据表的主键列判断是更新还是插入,如果是插入需要计算主键,如果是更新则需要设置更新的条件。因此前台传入后台数据只需要传入修改过的或者是新添加的纪录,没有进行处理的类型则不需要添加。更新一条记录和更新多条纪录是一样的。在数据库中各个表之间是若耦合的,不需要通过数据库系统的外键来维护。这样就减少了一些麻烦。向数据库中插入一条记录并向另外的表中插入多条记录的方式需要设计一个主表,然后设计子表,主表中插入一条记录之后分别向子表中插入数据,同时存入主表生成的主键,因此在前台向后台传入的XML文档中需要标示出主表和子表。无论是子表还是主表,在后台的数据库对应中都需要对应一个具体的表。解决一个及联子表的功能和多个子表的功能是一致的,为了系统的扩展,应该保留相应的字段。因此,后台应该存储的数据包括如下的样式
<system>
定义系统所有的表
<tables>
系统中需要的表都以这样的形式命名:
免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。