基于mysql的bbs设计(五)
6。bbsd和cq66服务器端改造
bbsd中,关于用户的模块应该比较好改,只要将写.PASSWD文件的操作换为
操作数据库的UserManage类的成员函数即可,但可能要先判断什么数据更改,
要调用哪个函数。并发操作的一致性,则由数据库的加锁功能保证,mysql应该
支持这种的锁吧。文章方面可能比较麻烦,也是将原来对文件的操作转换成操作
数据库的BoardManage类的成员函数即可。
cq66模式应该比较好改动,可能就是原来取文章的协议要变化一下。取文章
标题的时候,同时也将文章的长度发送过去,然后客户端可以根据显示区的大小,
逐步请求文章的内容,请求文章的时候要给出请求的范围。
关于系统模块层,可能做成so的形式会不会较好,(so是不是相当于dll,
容不容易做的,有没有必要?),同时系统模块层应不应该保存一些局部数据呢?
还是做成公用函数一样的接口呢?回想UserManage类,可能没必要区分特权指令,
所有操作都要提供操作对象的id,而权限检查交到上面的服务层来完成?
7。初步测试计划
要测试,等先要把东西做出来,要做东西,先要有别的东西。。。。。
首先将167系统装好,配好mysql,然后学学mysql的 C API 接着建好表,
要做这个计划,先要将短学期的5000行代码写完,然后是复习考研,复习之余将编译器作业作好,再有时间而且没有mm来找我,就可以开始做了。。。。。
相关推荐
-
基于mysql的bbs设计(五)
6.bbsd和cq66服务器端改造 bbsd中,关于用户的模块应该比较好改,只要将写.PASSWD文件的操作换为 操作数据库的UserManage类的成员函数即可,但可能要先判断什么数据更改, 要调用哪个函数.并发操作的一致性,则由数据库的加锁功能保证,mysql应该 支持这种的锁吧.文章方面可能比较麻烦,也是将原来对文件的操作转换成操作 数据库的BoardManage类的成员函数即可. cq66模式应该比较好改动,可能就是原来取文章的协议要变化一下.取文章 标题的时候,同时也将文章的长
-
基于mysql的bbs设计(一)
1.系统架构: 采用模块化思想,分为3层: a.数据存储层:使用mysql来存放bbs的所有数据,包括用户信息, 文章数据,用户信件,用户消息,系统数据(?),关键问题: 数据库的规划,是否用文件来辅助. b.系统功能层:完成bbs的基本功能,由多个并列模块组成,向下 调用mysql的函数访问数据库,向上,接受处理请求,将处理的 结果返回上层,根据请求类型,返回成败结果和其他数据.而且 模块高度灵活,可以方便的修改增加.包括: ** 用
-
基于mysql的bbs设计(三)
4.用户模块设计 对于底层数据库,调用mysql的C API函数来进行数据库的修改,内部保存 一定的状态变量(例如用户名,还是留给上一层完成?),对上一层,则提供 用户管理的接口. Class UserManage { private: char myuserid[20]; // 用户的id,未登陆前为空 time logintime; // 用户登陆时间,并用于计算停留时间 char loginhost[20]; //上站地点. public:
-
基于mysql的bbs设计(二)
3.数据库设计 关键还是mysql的效率问题,合理分配mysql的内存,特别是table cache的 大小.另外,当系统突然掉电呢?mysql是否robust? table的名字设计,采用一位前缀表明类型,全部用小写表示(?),例如: 系统的数据库,以s为前导,如用户表:suser(sUSER 呢?),具体如下: s :系统表,suser,sclass m :用户信件表,msysop,mdrangon w :用户消息表,wsysop,wdrangon a :版面索引表,
-
基于mysql的bbs设计(四)
5.版面模块设计 所谓分类,更多的是为telnet服务端考虑的,在cq66模式下,用户可以按 照自己的意愿进行分类,反正最后都是直接以版为基本单位访问的. 对于版面文章的访问,存放的时候以整篇文章为参数,文章的分块由本层 完成,如果上层以块为单位传送,则在上层全部传完,组合后,再传参到本层 分解:在读取 的时候,本层则以块为单位访问,如果上层要以全文为单位访问 ,则在上层做合并 工作,本层不管. 至于要不要独立出索引,不影响上层的操作,主要和下层的数据库构造有 关, 主要考虑可行性,
-
MySQL 可扩展设计的基本原则
前言 随着信息量的飞速增加,硬件设备的发展已经慢慢的无法跟上应用系统对处理能力的要求了.此时,我们如何来解决系统对性能的要求? 只有一个办法,那就是通过改造系统的架构体系,提升系统的扩展能力,通过组合多个低处理能力的硬件设备来达到一个高处理能力的系统,也就是说,我们必须进行可扩展设计. 一.什么是可扩展性 在讨论可扩展性之前,可能很多朋有会问:常听人说起某某网站某某系统在可扩展性方面设计的如何如何好,架构如何如何出色,到底什么是扩展?怎样算是可扩展?什么又是可扩展性呢?其实也就是大家常听到的 S
-
浅谈mysql的索引设计原则以及常见索引的区别
索引定义:是一个单独的,存储在磁盘上的数据库结构,其包含着对数据表里所有记录的引用指针. 数据库索引的设计原则: 为了使索引的使用效率更高,在创建索引时,必须考虑在哪些字段上创建索引和创建什么类型的索引. 那么索引设计原则又是怎样的? 1.选择唯一性索引 唯一性索引的值是唯一的,可以更快速的通过该索引来确定某条记录. 例如,学生表中学号是具有唯一性的字段.为该字段建立唯一性索引可以很快的确定某个学生的信息. 如果使用姓名的话,可能存在同名现象,从而降低查询速度. 2.为经常需要排序.分组和联合操
-
Java实战之基于I/O流设计的图书管理系统
一.前言 当前,我还没有学到数据库相关的知识,想要完全通过Java来完成一个可以存储数据的图书馆管理系统就只能使用I/O流的知识,将内容都保存到文件中,再进行增删改查的操作,这就很考验我们的Java基础知识掌握能力. 二.项目介绍 Java基本语法的掌握 流程控制语句的熟练使用 面向对象思想的理解 能否熟练使用封装.继承.多态 接口.异常的熟悉 集合的使用 是否熟悉掌握I/O流相关操作 三.项目说明 传统的人工管理图书馆流程繁琐,我们需求设计一个图书馆管理系统来方便学生借书以及管理员管理书籍 系
-
MySQL系列之十五 MySQL常用配置和性能压力测试
一.MySQL常用配置 以下所有配置参数以32G内存的服务器为基 1.打开独立的表空间 innodb_file_per_table = 1 2.MySQL服务所允许的同时会话数的上限,默认为151,经常出现Too Many Connections的错误提示,则需要增大此值 max_connections = 8000 3.操作系统在监听队列中所能保持的连接数 back_log = 300 4.每个客户端连接最大的错误允许数量,当超过该次数,MYSQL服务器将禁止此主机的连接请求,直到MYSQL服
-
一条sql详解MYSQL的架构设计详情
目录 1 前言 2 应用层 2.1 连接线程处理 3 服务层 3.1 SQL 接口 3.2 SQL解析器 3.3 SQL优化器 3.4 执行器 3.5 查询缓存 4 存储引擎层 4.1 概述 4.2 缓冲池(buffer pool) 4.2.1 数据页.缓存页和脏页 4.2.2 元数据 4.2.3 free链表 4.2.4 flush链表 4.2.5 LRU链表 4.2.6 小结 4.3 undo log 4.4 redo log 5 总结 1 前言 对于一个服务端开发来说 MYSQL 可能是他
随机推荐
- 深入理解vue-router之keep-alive
- js 模式窗口(模式对话框和非模式对话框)的使用介绍
- 使用httpclient实现免费的google翻译api
- java synchronized同步静态方法和同步非静态方法的异同
- js中的this关键字详解
- ASP.Net巧用窗体母版页实例
- ASP.NET技巧:同时对多个文件进行大量写操作对性能优化
- Zend Framework框架路由机制代码分析
- php面向对象全攻略 (三)特殊的引用“$this”的使用
- python中nan与inf转为特定数字方法示例
- 详谈js使用in和hasOwnProperty获取对象属性的区别
- clipboard.js无需Flash无需依赖任何JS库实现文本复制与剪切
- 利用n 升级工具升级Node.js版本及在mac环境下的坑
- 21天学习android开发教程之MediaPlayer
- Ruby实现网页图片抓取
- jquery中用函数来设置css样式
- MySQL安装提示"请键入NET HELPMSG 3534以获得更多的帮助"的解决办法
- jQuery数据缓存功能的实现思路及简单模拟
- Java实现图片与Base64编码互转
- JavaScript使用focus()设置焦点失败的解决方法