求解决方案--------数据库操作通过自己写的socket来传输

时间:2015-05-26 02:26:23   收藏:0   阅读:304
    就是客户端的查,插,删,改不是通过数据库自带的远程操作及数据库自己的socket来完成,而是通过自己写socket将这些操作,传输到服务端,然后再由服务端进行sql语句操作。

    我自己写了一个也能实现,只是感觉到很啰嗦,不好扩展。
    我的数据库一个db,4张表。我的做法是,自定义传输数据规格,4张表4个对象,insert操作只有一个条件,update只有一个条件,假如每个都写的话函数有很多,select主要选择出几个重要字段,传输也是一条记录一条记录的传输,我怕缓冲区溢出,delete也只有一个操作。然后这些操作写成一个映射关系比如:         表1,为0x01;(selectA 0x01 ;selectB 0x02 .... insert 0x0...)一个字节 ;_表2,0x02;selectA 0x01......   然后参数在后面,参数格式为:参数开始标志+参数大小+参数内容+参数结束标示;每个参数都这样。这个为客户端发给服务端的格式。
    服务端发给客户端大概也是这样:表1 为0x01,代表这是传输的是表一的数据------------ 接着一个字节是 解参数的标志,-------接下来是内容,不过这里的内容是列值组成的记录,每个列值格式(列值开始标志+列值大小+列值内容+列值结束标示).然后客户端根据对应关系来解出数据。

    缺点是像要查某个用户下的全部数据的时候,需要一条一条的传输,假如只是一个列的话,可以多条传输;啰嗦,函数映射太多;假如是多表连接查询的时候,我这个设计的就无能为力了。缓冲区接受和发送预设多少才合理,比如一条记录等问题。


      所以征求大家的意见,和方案。
      估计表达不清楚,大家请提出。

原文:http://blog.chinaunix.net/uid-29804045-id-5044651.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!