首页
技术博客
PHP教程
数据库技术
前端开发
HTML5
Nginx
php论坛
新用户注册
|
会员登录
PHP教程
技术博客
编程问答
PNG素材
编程语言
前端技术
Android
PHP教程
HTML5教程
数据库
Linux技术
Nginx技术
PHP安全
WebSerer
职场攻略
JavaScript
开放平台
业界资讯
大话程序猿
登录
极速注册
取消
热门标签 | HotTags
byte
subset
integer
dagger
dockerfile
heatmap
range
timezone
select
utf-8
process
runtime
split
install
default
settings
emoji
go
int
web3
buffer
string
vba
cPlusPlus
php
hashset
random
rsa
iostream
post
function
java
spring
config
bit
const
include
tags
bytecode
eval
cpython
lua
import
vbscript
php7
format
copy
require
input
uri
frameworks
match
c语言
数组
schema
bitmap
bash
typescript
version
object
blob
php5
solr
search
jar
node.js
instance
web
stream
callback
ascii
jsp
datetime
grid
actionscrip
netty
hash
httprequest
chat
当前位置:
开发笔记
>
编程语言
> 正文
基于MySQL的BBS设计(1)_MySQL
作者:兆龙77 | 来源:互联网 | 2018-04-16 06:04
基于MySQL的BBS设计(1)
bitsCN.com 1。系统架构:
采用模块化思想,分为3层:
a。数据存储层:使用mysql来存放bbs的所有数据,包括用户信息,文章数据,用户信件,用户消息,系统数据(?),关键问题: 数据库的规划,是否用文件来辅助。
b。系统功能层:完成bbs的基本功能,由多个并列模块组成,向下调用mysql的函数访问数据库,向上,接受处理请求,将处理的结果返回上层,根据请求类型,返回成败结果和其他数据。而且模块高度灵活,可以方便的修改增加。包括:
** 用户模块,处理用户的注册,基本数据的修改,权限的变化,网友信息的查询。
** 版面模块,完成文章发表,文章的读取,文章的删除,文章的加标记,读改删权限检查,此模块对数据库的要求最高。
** 精华区模块,包括精华区的文章,目录的增加,删除,上下移动
(?)读改删权限检查,目录结构是其中的难点。
** 信件模块,包括发新信件,读删信件,信笺标记,新信件的通知
** 消息模块,包括发送消息,接受消息,新消息通知,消息回顾,消息存信件。
** 系统动态模块,包括当前上站人数,当前动态,由于变动频繁,此类数据用共享内存实现可能更好。
** 聊天模块,双人聊天是否能借鉴icq的做法,由双方直接通话,但聊天结果存信件可能较麻烦,同时,为兼容telnet功能,当上层服务层为telnet时,增加专门的模块来进行处理。
** 聊天室模块,利用共享内存还是数据库?开房间,里面的权限问题。根据需要,还能增加新的功能。例如:活动看板模块,但对于非telnet终端,意义好象不大。。。。。
c。服务层:直接和客户机对话,根据客户机的请求,调用功能模块取得数据,然后将数据发送回客户端,根据客户端的类型,分别开发不同的服务模块,并且尽可能合理进行抽象,使对不同的服务层,能共用系统功能层的模块。具体包括:
++ cq66服务端,采取原cq66的方式,并重新规划协议,支持系统功能层的所有功能,但要用专门的客户端程序(cq66),如果能做到向下兼容则更好,客户端程序要随服务端的升级而升级,用户可能有点不便。有需要可以在传输过程中加入加密功能,类似ssh。
++ telnet服务端,采用旧bbs的方式,有些功能不支持,客户端无须升级,服务器端要保存客户方的状态,并根据客户端的按键来判断状态的转移,并由此得出所需的数据,(例如阅读某篇文章),然后再向系统功能层请求数据,然后将数据加以处理(例如加上顶行,尾行)然后返回数据,可以在现有的bbsd上修改,可以省去io模块的设计但难度较大,除文章方面好一点外,其他比较难改,但从头写起太费力。
++ httpd服务端,所需的功能更少,相对较简单,本来直接调用mysql数据库也行,直接可以用php,但考虑到分层的原则,建议仍用c编cgi的方式实现不知能不能在原来的基础上修改呢?估计不行。
系统的关键和难点:
a。数据库的设计,mysql支持大量的table吗?例如几万?每个用户至少一个表,然后每个版一个表,精华区的表结构可能更复杂。
但应该总会比现在bbs的文件结构清晰一些,效率也高一点吧,排序和cache的功能可以信赖mysql吧。
b。mysql中文本字段的大小限制,限制一篇文章不得大于64k不过分吧,而且从效率的角度,将一篇文章以最大2k的块为单位存放可能更好,这样,当telnet用户看文章时,telnet服务器不用每次都查询数据库读取几十k的数据,再将其中的某2k传给用户,可局部补偿数据库字段不能象文件那样从中间读取一部分。不过这样文章字段数据的管理比较复杂。
2。系统开发计划:
先考虑用户模块和版面模块,规划好数据结构,应该很容易和现有bbsd结合bitsCN.com
mysql
ssh
服务器
php
写下你的评论吧 !
吐个槽吧,看都看了
会员登录
|
用户注册
推荐阅读
php
Android 新闻App的本地服务器搭建教程
本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ...
[详细]
蜡笔小新 2023-12-14 17:15:19
php
搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ...
[详细]
蜡笔小新 2023-12-14 17:03:58
php
PHP设置MySQL字符集的方法及使用mysqli_set_charset函数
本文介绍了PHP设置MySQL字符集的方法,详细介绍了使用mysqli_set_charset函数来规定与数据库服务器进行数据传送时要使用的字符集。通过示例代码演示了如何设置默认客户端字符集。 ...
[详细]
蜡笔小新 2023-12-14 15:30:33
php
如何限制php数据库链接数和连接超时时间?
本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ...
[详细]
蜡笔小新 2023-12-14 14:06:10
post
LVS 实现负载均衡的原理
LVS实现负载均衡的原理LVS负载均衡负载均衡集群是LoadBalance集群。是一种将网络上的访问流量分布于各个节点,以降低服务器压力,更好的向客户端 ...
[详细]
蜡笔小新 2023-12-10 12:10:22
php
Hibernate基础映射
在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ...
[详细]
蜡笔小新 2023-12-14 10:57:47
php
PHP实现断点续传乱序合并文件的方法和源码
本文介绍了使用PHP实现断点续传乱序合并文件的方法和源码。由于网络原因,文件需要分割成多个部分发送,因此无法按顺序接收。文章中提供了merge2.php的源码,通过使用shuffle函数打乱文件读取顺序,实现了乱序合并文件的功能。同时,还介绍了filesize、glob、unlink、fopen等相关函数的使用。阅读本文可以了解如何使用PHP实现断点续传乱序合并文件的具体步骤。 ...
[详细]
蜡笔小新 2023-12-14 04:33:19
php
高校天文共享平台开发过程中的思考与规划
本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ...
[详细]
蜡笔小新 2023-12-13 18:08:58
php
众筹商城与传统商城的区别及php众筹网站的程序源码
本文介绍了众筹商城与传统商城的区别,包括所售产品和玩法不同以及运营方式不同。同时还提到了php众筹网站的程序源码和方维众筹的安装和环境问题。 ...
[详细]
蜡笔小新 2023-12-12 19:00:31
post
如何在php中将mysql查询结果赋值给变量
本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ...
[详细]
蜡笔小新 2023-12-12 18:22:57
php
Java学习笔记之使用反射+泛型构建通用DAO
本文介绍了使用反射和泛型构建通用DAO的方法,通过减少代码冗余度来提高开发效率。通过示例说明了如何使用反射和泛型来实现对不同表的相同操作,从而避免重复编写相似的代码。该方法可以在Java学习中起到较大的帮助作用。 ...
[详细]
蜡笔小新 2023-12-11 18:38:04
php
从一个dialog跳转到另一个dialog情况:
原理:dismiss再弹出,把dialog设为全局对象。if(dialog!null&&dialog.isShowing()&&!(Activity.)isFinishing()) ...
[详细]
蜡笔小新 2023-12-11 18:28:33
php
Centos7部署安装zabbix5.0详细步骤及注意事项
本文详细介绍了在Centos7上部署安装zabbix5.0的步骤和注意事项,包括准备工作、获取所需的yum源、关闭防火墙和SELINUX等。提供了一步一步的操作指南,帮助读者顺利完成安装过程。 ...
[详细]
蜡笔小新 2023-12-10 09:35:39
settings
大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ...
[详细]
蜡笔小新 2023-10-17 19:47:17
rsa
ssh免密码登录设置
hadoop1.2.1文档中这样写:Nowcheckthatyoucansshtothelocalhostwithoutapassphrase:$sshlocalhostIfyou ...
[详细]
蜡笔小新 2023-10-17 18:22:10
兆龙77
这个家伙很懒,什么也没留下!
Tags | 热门标签
byte
subset
integer
dagger
dockerfile
heatmap
range
timezone
select
utf-8
process
runtime
split
install
default
settings
emoji
go
int
web3
buffer
string
vba
cPlusPlus
php
hashset
random
rsa
iostream
post
RankList | 热门文章
1
bootstrap模态框动态赋值, ajax异步请求数据后给id为queryInfo的模态框赋值并弹出模态框(JS)...
2
opengl 旋转矩阵和纹理坐标相乘_OpenGLRotating Points
3
计算机仿真段维军,2021年计算机仿真编程实践21 计算机仿真段维军.docx
4
基于JavaScript实现下拉列表左右移动的案例
5
在手机上怎么运行c语言,各位前辈这两个程序怎么在手机上运行
6
怎么在Android 应用中实现一个换肤功能
7
详解PHP中curl_multi并发的实现
8
fedora 11安装 samba 全过程(yum 和源码级编译)
9
WPF自定义事件参数
10
工作经验谈之-让百度地图API调用数据库内容 及详解
11
C语言的经典程序有哪些
12
搜狗输入法怎么调键盘大小详细介绍
13
初探PLC 的ST 语言转换成C++ 的方法
14
bzoj4554【TJOI2016&HEOI2016】游戏
15
ZABBIX 3.0 配置监控NGINX性能【OK】
PHP1.CN | 中国最专业的PHP中文社区 |
DevBox开发工具箱
|
json解析格式化
|
PHP资讯
|
PHP教程
|
数据库技术
|
服务器技术
|
前端开发技术
|
PHP框架
|
开发工具
|
在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved |
京公网安备 11010802041100号
|
京ICP备19059560号-4
| PHP1.CN 第一PHP社区 版权所有