[原创]mBBS ver 2.0发布,源码提供下载(附论坛设计思路)

madpolice 2004-12-10 02:36:13
mBBS ver 2.0.04.12.06 sql版

主要特点:
简洁!
vBulletin界面风格
存储过程分页
二级分类
版主、版副权限分开
支持UBB
不支持所见即所得发帖
脏字过滤
版主、版副在线管理
置顶、总置顶
精华区
删除最后一个回贴后主贴排序恢复原来的顺序(其他论坛有这个功能否?)
用户管理使用接口,可以将任何用户数据库导入!!
数据一致性用触发器实现
...

演示地址:http://madpolice.vicp.net/bbs/
部分源码在上面的地址中贴出来了

*************************************************************************************************
mBBS设计思路概述
*************************************************************************************************
一、分类
没有支持无级分类,只要是考虑到二级分类比较常见。而且论坛分类级别过多别人不一定愿意看。

二、结构
论坛由若干“讨论区”(Categories)组成,每个“讨论区”由若干“讨论版”(Forums)组成,每个“讨论版”由若干“贴子”(Articles)组成。
“贴子”(Articles)分为“主贴”(Root Articles)与“回贴”(Sub Articles)两种。每个“回贴”都与一个唯一的“主贴”相关联。

三、数据库表设计
表名:cate   大类
----------------------------------------
字段      含义
----------------------------------------
c_id      自动编号,主键
c_name     大类名
----------------------------------------

表名:forum   小类
----------------------------------------
字段      含义
----------------------------------------
c_id      所属大类编号,外键(对应cate表中的c_id)
f_id      自动编号,主键
f_name     小类名
----------------------------------------

表名:article    帖子
----------------------------------------
字段      含义
----------------------------------------
f_id      ,所属小类编号,外键(对应forum表中的f_id)
a_id      自动编号,主键
a_title     帖子主题
a_content   帖子内容
a_topType   置顶类型(2总置顶,1本版置顶,0不置顶)(主贴列表的第一排序依据)
u_id      作者id,外键,(对应user表中的u_id)
a_r_id     帖子所关联的主贴编号
a_s_id     排序编号,(主贴列表的第二排序依据)
a_r_s_id    “贴子”所关联的“主贴”的排序编号
----------------------------------------
说明:
a_r_id  article root id
     如果是主贴,该值设为0;如果是回贴,该值为所关联的主贴的a_id
a_s_id  article sorting id
     如果是“回贴”则该值设为0,即“回贴”不在“主贴列表”中排序
     如果是没有回复的“主贴”则该值等于a_id
     如果是有回复的“主贴”则该值等于最后回复的“回贴”a_id
a_r_s_id aritcle root sorting id
     如果是“主贴”,则该值设为0;如果是“回贴”,则该值等于“主贴”a_s_id

表名:user   用户表
----------------------------------------
字段      含义
----------------------------------------
u_id      自动编号,主键
u_name     用户名
----------------------------------------


四、数据库视图设计
视图名:vforum  供论坛首页调用
select f.*,c.c_name from forum f inner join cate c on f.c_id=c.cid order by c_id,f_id

视图名:vArticle
将上面四个表的数据根据它们之间的关系组合到一起

五、数据库存储过程设计
存储过程名:pForumPaging
用途:通过传入参数“小类编号”查询vArticle视图,返回某小类主贴列表的分页记录集

存储过程名:pArticlePaging
用途:通过传入参数“主贴编号”查询vArticle视图,返回某主贴及其相关回贴的分页记录集

六、页面设计
论坛首页index.asp  直接查询vForm视图生成
小类主贴列表forum.asp  调用pForumPaging存储过程生成
帖子显示article.asp    调用pArticlePaging存储过程生成

七、关于主贴的排序编号
主贴跟所有回帖组成了一个“链”。
每个帖子都有“主贴排序编号”跟“自己的编号”;每个所保存的“主贴排序编号”实际上就是“链”中“上一个帖子的编号”。
因此,每个帖子都保存着“上一个帖子的编号”跟“自己的编号”。
因此,整个“链”可以看成是这样一种数据结构——“链表”(关于“链表”这种数据结构就不解释了)!!

那么,发主贴就是新增加一条“链”;发回贴就是在主贴“链”上增加一个“链节”。

那么,删除主贴实际上就是删除一条“链”;删除回贴就是删掉主贴“链”上的一个“链节”;
如果这个“链节”是“链”的尾部,那么删除这个“链节”会改变主贴排序编号,也就是让主贴的排列顺序恢复到没有发这个回贴之前的顺序;
如果这个“链节”在“链”的中部,那么删除这个“链节”只要让断链接上就可以了,也就是说不改变主贴排列顺序。具体操作见下,

八、删除帖子的实现(使用触发器)
1.删除主贴
删除该主贴以及该主贴的所有回帖
2.删除回贴
如果是最后一个回贴,
a.设置相关联的主贴的“排序编号”为自己保存的“主贴排序编号”,
b.删除该回贴

如果不是最后一个回贴,
a.找到“主贴排序编号”等于自己“编号”的帖子(也就是“链表”中的下一个“链节”),设置下一个“链节”的“主贴排序编号”为自己保存的“主贴排序编号”;
b.删除该回贴
...全文
329 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
5isoft 2004-12-29
  • 打赏
  • 举报
回复
多好的人啊!!!!妈的 竟然还有人说反对的话!鄙视
iuhxq 2004-12-14
  • 打赏
  • 举报
回复
结贴了?
接分
madpolice 2004-12-14
  • 打赏
  • 举报
回复
请留下email,我发源码。
passionke 2004-12-13
  • 打赏
  • 举报
回复
up
紫郢剑侠 2004-12-13
  • 打赏
  • 举报
回复
UP
下载地址啊???????
jakejo 2004-12-13
  • 打赏
  • 举报
回复
UP
下载地址啊???????
tigerzhouli8888 2004-12-13
  • 打赏
  • 举报
回复
我本人也觉得BSS就是越简单越好啊,像现在很多论坛做的都很复杂,一些刚刚使用电脑或者网络的朋友,觉得摸不着头脑,可是,一些经常上论坛的朋友却不一定使用那些功能,何必呢?并不是说简单就没有技术了,简单也需要复杂的设计,这才是一个程序最需要学习的地方啊。
楼主发这个帖子的用意,我想并不是要炫耀自己的技术,在CSDN高手很多,这个不需要我来说明吧?楼主只是想有一个相互交流和学习的机会,这不是广大CSDN的共同想法吗?难道来CSDN只是来相互攻击的吗?
希望大家在CSDN,相互学习,共同进步!!!
tigerzhouli8888 2004-12-13
  • 打赏
  • 举报
回复
真的很不错啊,像这样分享自己的设计思路啊,希望大家多多发这样的帖子,给彼此一个相互学习的机会啊~
我顶啊
收藏
xiaozx 2004-12-13
  • 打赏
  • 举报
回复
UP!
Jsong6622 2004-12-13
  • 打赏
  • 举报
回复
先收藏
madpolice 2004-12-13
  • 打赏
  • 举报
回复
关于“所见即所得”,有多少人在发贴子的时候使用这个功能?

关于“图片上传”,如果你有1000个用户,每人上传1M,总量就是1G,你的虚拟主机有多少空间供你使用呢?
madpolice 2004-12-13
  • 打赏
  • 举报
回复
最后顶一次,明早8点前结贴!


woshichaoren(王超)提到:要用论坛多的是,何必用你这个呢

我说说我的想法吧:
这个论坛的定位是简洁,不搞很多复杂的功能,就要最基本的。
我认为用户等级、积分、生日榜等等不属于论坛管理的范畴,应当属于用户管理,因此没有做。
同样,我认为站内短信、风格模板、滚动公告、站内收藏夹、数据统计等等超出了论坛的范畴,应当属于全局(全站)性质的,因此没有做。
如果某个网站的全部内容就是BBS,那我这个不合适,因为功能比较少。
如果某个网站有自己的主题,BBS仅是网站的很小一部分,那我这个可能比较适合。
另外,本论坛的用户管理使用了接口,可以很方便地将任何已经存在的用户数据导入。
madpolice 2004-12-11
  • 打赏
  • 举报
回复
pushser(捕食者):
简洁(也许是优势,也许是劣势。)

关于安全方面,请详细说说,我再认真检查检查。
pushser 2004-12-10
  • 打赏
  • 举报
回复
看起来,还是很不错的。就是不晓得和我们现在用的这些有什么优势。另外,安全方面可能还要加强。。。

没具体研究。楼主这个精神还是比较值得学习的。
madpolice 2004-12-10
  • 打赏
  • 举报
回复
闭门造车,错误肯定很多,希望大家批评.
yfmine 2004-12-10
  • 打赏
  • 举报
回复
学习一下,谢谢楼主,倒是搞不清楚kiccleaf(凯晰叶子) 说的有哪儿搞笑。。。
madpolice 2004-12-10
  • 打赏
  • 举报
回复
woshichaoren(王超):
要用论坛多的是,何必用你这个呢

没强迫你用阿?我发个帖子有什么不妥吗?
kirinboy 2004-12-10
  • 打赏
  • 举报
回复
呵呵
bashen1223 2004-12-10
  • 打赏
  • 举报
回复
up
echina 2004-12-10
  • 打赏
  • 举报
回复
看看
加载更多回复(5)

28,390

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧