C/S面向数据库编程总结


title: C/S面向数据库编程总结

历史

在传统的C/S开发模式下,客户端往往需要承担数据库数据的显示和编辑任务.为了将S端的数据库的数据推送至C端, 通常的做法有两种:

  • 全面开放Mysql数据库接口
  • C端和S端全面架设通信管道,负责数据库编辑

上述两种方法均存在不同的弊端.

方案一分析

优点

  • 由客户端直接访问数据,简单明了
  • 界面部分可以直接面向数据编程,耦合性低

缺点

  • 服务器对数据库的访问限制失去控制权,无法对客户端角色控制
  • 数据库访问直接暴露于外网中,安全受到威胁

方案二分析

优点

  • 保护数据库安全, 确保服务器对客户端拥有访问控制权限

缺点

  • 界面数据库的显示对通信管道有着极大的依赖,一旦界面做出修改, 则管道和服务端均需要做出修改.耦合性较大

读写分离方案

  • 在Mysql中增加客户端只读用户,提供数据库查询功能,暴露出客户端需要访问的数据表
  • 对数据库的修改操作统一由 客户端和服务器之间建立的通道负责.管道负责将操作操作数据库sql 语句传输至服务器,由服务器用户负责对数据库进行修改
  • 服务器根据不同的用户角色,对客户端请求操作进行限制

优点

  • 将数据库读取的功能独立处理, 让客户端数据的显示不受C/S网络通道的限制
  • 将数据库的修改操作统一到一个接口中, 简化C/S网络通信,确保服务器对客户端的请求拥有权限限制
  • 减轻服务器的业务逻辑复杂度,将显示功能
  • 技术实现简单,门槛低

缺点

  • 需要暴露部分数据库数据
  • 该方案并未将数据库的操作全部独立处理
  • 不适应多人分工合作

C/S B/S 混合编程方案

在本地客户端中嵌入Browser. 由Web部分负责处理数据库处理工作. 实现普通事件与数据库完全分离的操作.从而简化客户端的开发工作

优点

  • 数据库操作完全分离,且保障了服务器对数据库管理权限
  • 能够有效的保护数据库安全
  • 适合多人分工合作
  • 极大简化的客户端的开发工作,能够有效弥补C/S,B/S开发过程各种的优缺点.取长补短
  • 统一Web和客户端的开发风格,实现界面代码复用
  • 统一web开发接口,简化开发流程

缺点

  • 技术复杂,门槛高, 需要使用到客户端内嵌webkit和后台web的技术支持
  • 客户端打包体积较大, 不利于客户端发行

总结

  • 读写分离方案使用小团队,小公司开发. 技术入门简单,客户端界面数据显示定制无需修改服务器. 短期内能够适合敏捷开发的需求
  • B/S C/S混合开发目前已经成为主流大公司的首选技术标准(andriod首推). 此类应用适用于长期与用户保持接触, 有着极高的用户活跃度和较大内容输出的场景

你可能感兴趣的:(C/S面向数据库编程总结)