1、需求分析
-
通过发表文章开始新的讨论话题
-
发表文章来回复已有的文章
-
查看发表的文章
-
查看论坛中的交谈话题
-
查看文章之间的关系,也就是,查看哪篇文章是另外文章的回复
2、解决方案
2.1 论坛设计
2.2 Web论坛应用程序中用到的文件
文件名称 | 类型 | 描述 |
index.php | 应用程序 | 用户进入站点看到的主页。包括该站点中所有文章的可扩展及删除的列表 |
new_post.php | 应用程序 | 用来发表新文章的表单 |
store_new_post.php | 应用程序 | 保存已输入到new_post.php表单中的文章 |
view_post.php | 应用程序 | 显示一篇单独的文章及回复它的文章的列表 |
treenode_class.php | 函数库 | 包含节点类,我们将要用它来显示文章的继承关系 |
include_fns.php | 函数库 | 将该程序中用到的所有其他函数库放在一起(其他库类型文件在这里列出) |
data_valid_fns.php | 函数库 | 数据检验函数 |
db_fns.php | 函数库 | 数据库连接函数 |
discussion_fns.php | 函数库 | 处理存储及重新获得发表的文章的函数 |
output_fns.php | 函数库 | 输出HTML的函数 |
create_database.sql | SQL | 建立该程序所需要数据库的SQL脚本 |
3、实现数据库
CREATE DATABASE discussion; #创建论坛数据库USE discussion; #使用论坛数据库CREATE TABLE header #创建数据头表( parent INT NOT NULL, #父文章的postid poster CHAR(20) NOT NULL, #该文章的作者 title CHAR(20) NOT NULL, #该文章的标题 children INT DEFAULT 0 NOT NULL, #该文章是否有回复,0无,1有,默认0 area INT DEFAULT 1 NOT NULL, #备用于扩展时,实现多个论坛的多个版块 posted datetime NOT NULL, #该文章的发表的时间和日期 postid INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY #每篇文章的唯一的ID);CREATE TABLE body #创建正文表( postid INT UNSIGNED NOT NULL PRIMARY KEY, #每篇文章的唯一的ID message text #该文章的正文);GRANT SELECT,INSERT,UPDATE,DELETEON discussion.*TO discussion@localhost IDENTIFIED BY 'password';
4、实现源代码
下载地址: 一个简单的PHP Web论坛