论坛

来源:互联网 发布:容克贵族知乎 编辑:程序博客网 时间:2024/03/28 20:12
论坛为何?是何方神圣?其实呢?论坛也称为BBS,是bulletin Board System的简称,意即电子公告板,是一种在Internet上常见的用于信息服务的Web系统,它主要给浏览者提供相互沟通的平台,以此来吸引用户,服务用户。

BBS起源于20世纪80年代初。最初,论坛只是用于发布公告信息,讨论问题的在线交流平台。后来,随着网络的普及,论坛的功能越来越丰富,受到广大网民的欢迎。因此,商业网站对论坛重视起来,纷纷在自己的网站上开辟论坛。作为与网民交流的园地。同时在线技术支持和在线服务也在论坛中开展起来。

由此可见,论坛系统也是一种很值得掌握的程序。

论坛的需求规划

在开始编写一个论坛系统之前,首先要确定论坛的功能是什么,也就是开发中常提到的需求是什么。那么什么决定需求呢?用户使用论坛,有一定的流程:用户注册登录进入论坛,就某个话题(主题贴)展开讨论,通过发贴功能发布新的话题,通过回贴的功能回复已有的话题,通过搜索功能查找已的话题;管理通过管理功能创建、编辑、删除论坛的板块,管理注册的用户,管理贴子。设置论坛的基本参数。这样的流程就决定了论坛的需求,如图:

浏览者

用户

注册登录

 

搜索

 

管理板块

 

浏览板块

 

管理用户

 

发帖

 

浏览帖子

 

回帖

 

管理帖子

 

管理员

 

从流程图上可以看到论坛完成的走向,其实每一个流程的节点处都有许多功能,如表2-1

论坛功能列表

论坛板块列表

浏览帖子

发帖回帖

搜索帖子

编辑帖子

删除帖子

精华帖

置顶帖子

转移帖子

用户注册

用户登录

控制用户权限

修改注册信息

设置论坛参数

管理板块

管理用户

2.1.1分析需求并确定思路

在看了表2-1所示的功能需求后,你是不是觉得论坛的功能很凌乱无序?可是如何把这些凌乱的功能能整理好,拨云见日呢?这正是程序员分析设计的地方。

设计一个应用系统的过程,其实就是将凌乱无序的需求进行分析以得到功能列表,然后进行整理、归纳、再构建系统的整体框架,读者设计出数据实体、接口、用户界面,最终将所有功能需求转化为可以编码实现的程序框架。

现在就开始根据论坛的功能需求讲解设计思路。首先,观察论坛所有功能需求,你会发现在这16个需求中,如果执照不同的事物分类,可以分类4类对象:板块、帖子、用户和论坛。这4类对象,可以设计为4个数据实体,如果使用数据库存储它们,即可以设计4个基本数据表。

接下来分析每个对象的相关操作。设计为对象的功能实现接口,即为对象的操作类的方法,如图2-3所示。论坛类只有设置参数一个方法,即可以把设置一组参数作为一个方法,也可以把设置一个参数作为一个方法。由于现在只是设计程序框架,这些参数设置的细节将在编写程序的时候详细说明。

板块类有浏览列表和管理两个方法,管理方法可以分为创建、修改和删除3个方法,如图。

管理员

设置论坛参数

论坛分页参数

基本参数

用户相关参数

管理员

设置论坛参数

创建板块

修改板块

删除板块

用户

浏览板块列表

帖子类有浏览、发帖、回帖、搜索和管理5个方法,浏览方法又可以分为列表和查看2个子方法,管理方法又可以分为编辑、删除、置顶、转移、指定精华5个子方法,如图2-5所示。

用户

管理员

浏览帖子

搜索

回帖

管理帖子

编辑

指定精华

置顶

转移

删除

发帖

用户类有注册、登录和管理3个方法,管理方法又分为添加、删除和设置权限3个子方法,如图2-6所示。

用户

管理员

修改个人信息

注册

登录

管理用户

设置权限

添加

删除

经过上面分析后,当初列出的功能列表就分别有了各自的归属对象。

论坛一般存在两种用户,分别为注册用户和管理员。用户的权限是向下覆盖的,即上级权限包含下级权限,在这里的论坛中,管理员的权限是上级权限。接下来,需要归好类的对象及其方法分配给不同的论坛用户。具体功能的分配结果如表2-2所示。

如表2-2 论坛功能和用户权限对应表

 

对象实体

功能方法

用户类型

论坛

设置参数

管理员

板块

浏览列表

注册用户

创建板块

管理员

修改板块

管理员

删除板块

管理员

帖子

浏览列表

注册用户

查看帖子

注册用户

发帖

注册用户

回帖

注册用户

搜索

注册用户

编辑(自己所有)

注册用户

编辑(全部)

管理员

删除

管理员

置顶

管理员

指定精华

管理员

转移

管理员

用户

注册

注册用户

注册用户登录

注册用户

管理员登录

管理员

添加

管理员

删除

管理员

设定权限

管理员

与注册用户相关的功能,其实就是论坛前台的主要功能。论坛系统的前台,是用户讨论问题的平台,发帖、浏览、回帖一直惯穿用户整个的前台活动。同时,由于论坛系统的帖子管理是管理员在帖子浏览时进行的,所以编辑帖子、删除帖子、转移帖子、置顶帖子和指定精华等到功能也安排在前台实现,其他与管理员相关的功能,包括板块管理、用户管理和论坛设置都是管理员在后台进行的操作。

这样,一路分析下来,论坛的基本功能,也就是必要的功能就浮现在眼前了。接下来,将要讲解怎么样设计论坛的基本功能。

2.1.2设计基本功能

通过以上分析,论坛的基本功能可以从众多需求中筛选出来。顾名思义,基本功能就是构成论坛系统的必要功能,具备这些功能的这eb系统即是论坛。

  论坛大类表

名称

类型

说明

CateId

Int

分类编号,主键

Catename

Varchar

分类名称

Cateposition

Varchar

分类显示位置

Date

Datetime

创建时间

论坛小类表

  

名称

类型

说明

Forcunid

Int

板块id 主键

Cateid

Int

归属那一大类

Forcumname

Varchar

板块名称

Forcumdesc

Varchar

板块描述

Forcumposition

Varchar

板块位置

Date

Datetime

创建时间

Member

Varchar

版主名称

Topic

Varchar

主题数(舍去)

Reply

Varchar

回复数(舍去)

Click

Varchar

点击数(舍去)

Imageurl

Varchar

小类图像url

 

 

 

 

论坛人员表

 

 

名称

类型

说明

Memberid

Int

用户id 主键

Membername

Varchar

用户名

Memberpwd

Varchar

用户密码

Membericon

Varchar

用户图标

Memberrealname

Varchar

用户真实姓名

Showemail

Bit

是否显示email(舍去)

Signature

Varchar

个性化签名

AvatarUrl

Image

用户自定义图像(舍去)

Homepage

Varchar

用户主页

Email

Varchar

用户email

Mobile

Varchar

手机号

Homephone

Varchar

固定电话

Qq

Varchar

Qq

Adress

Varchar

地址

Code

Varchar

邮编(舍去)

Cardno

Varchar

身份证号(舍去)

Ip

Varchar

用户Ip

Isadmin

Bit

是否管理员

Ispower

Bit

是否版主

Mark

Varchar

积分

Action

Bit

是否在线

Topiccount

Varchar

发帖数量

Replycount

Varchar

回帖数量

Date

Datetime

注册时间

Notused

Bit

是否删除(舍去)

LastVist

Datetime

登出时间

 

 

 

 

 

论坛主题表

 

名称

类型

说明

Id

Int

主键编号

Topiccaption

Varchar

主题标题

Content

Varchar

主题内容

Focumid

Int

论坛id编号

Memberid

Int

发帖人id

Istop

Bit

是否置顶

Isgood

Bit

是否精华

Notused

Bit

是否删除(舍去)

Date

Datetime

法帖时间

Ip

Varchar

发帖人ip

Click

Int

点击数也是阅读数

Replycount

Int

回复数(舍去)

Lastreplyuser

Varchar

最后回复人

Lastreplydate

Datetime

最后回复时间

 

 

回帖表

 

名称

类型

说明

Id

Int

主键

Forumid

Int

板块Id(用于计算版块的回帖数)

Topicid

Int

主题编号

Memberid

Int

回复人id

Catption

Varchar

回复贴标题

Content

Varchar

回复内容

Ip

Varchar

回复人ip

Date

Datetime

回复时间

Notused

Bit

是否删除(舍去)

 

论坛登陆日志

名称

类型

说明

Id

Int

主键

Membername

Varchar

登陆名

Action

Varchar

动作名

Time

Datetiem

登陆时间

Ip

Varchar

Ip地址

 

 

 

 

 

 

权限表

名称

类型

说明

PermissionId

Int

编号

Description

Varchar

权限说明

CategoryId

Int

分类号

 

 

角色表(Forums_Role)

名称

类型

说明

RoleId

Int

编号

Description

Varchar

角色描述

 

角色权限表(Forums_Role_Permission)

名称

类型

说明

RoleId

Int

编号

PermissionId

Int

编号


原创粉丝点击