头一低,很多年都这样过去了...

欢迎来到Kittow的部落格! - http://blog.skyhe.com

Agile Web Development (敏捷Web开发)

Want to Know Something More? Move Your Mouse Here;)

我是天空的一片云,偶尔投影在你的波心,你记得也好,最好你忘掉,你我在交汇时,互放的光亮。
——徐志摩《偶然》 More...

我的VOA听写积分

2005-11-18 [返回]
[转载]感想 - 想搞一套CMS
[ 2005-03-19 19:30:25 | 作者: skyblue ] 
网上的CMS也看来很多了,很想搞一套自己理想中的CMS,确切说是文章管理系统,要实现真正意义上的内容管理,需要涉猎的知识还真不是一般的多。。

我承认没有能耐从头一行行地写代码,,所以原始选型是TSYS2 ,程序的可读性很好,修改起来就容易多了。而且免费开源 不会有版权上的困扰。。

基本功能就是文章的添加管理发布和最重要的调用。。 
在看过下面这篇文章之后,突然发觉这样实现内容更新也是很不错的。于是决定了就这么做。。 


现在很多论坛程序都有Fans提供自己的集成新闻插件,这里简单的说一说自己的想法和理解;

以下部分主要讨论的是关于集成的问题,而不涉及关于正规新闻系统所涉及的布局、排版以及其他的技术问题,供论坛相关插件设计者切磋和指正。

这篇文章其实最主要的还是涉及对数据库的分析和设计上,相关的文章,在Google上有很多,教科书上也遍地都是,这里就不转载了;

---------------------------------------------

在最开始的作法,站长们普遍的作法首先是把论坛最新的主题、最热门的主题和精华贴提取显示在首页上,而提供的链接则是论坛的实际地址,点击以后的显示工作则由论坛自身来完成(这种做法在各大论坛和网站可见);

但是一部分站长开始不满足于这种完全归咎于论坛的作法,开始希望建构独立的、正式的、正规的新闻系统,以提高网站的形象和权威性,同时提高网站信息的有序性和可阅读性。

首先的想法是建立独立的新闻系统。

但是很快就会发现,在新闻系统中,同样包括标题、正文、点击、显示、日期、作者、来源、评论、IP等一系列的数据,几乎就是和论坛主题完全相同的属性,在数据库中占据额外而独立的位置,似乎不符合资源利用最大化的思路,许多信息看上去成为冗余。

同时,新闻系统的输入、编辑、修改、管理、置顶、转移等等功能,论坛本身已经提供了关于这部分的强大功能。

在这种情况下,自然而然诞生了希望利用论坛既有的强大后台支持(从发布到修改到删除,以及UBB排版等等),建立集成性质的新闻系统的想法,从而以最少的开发代价,换取一个强大的新闻系统的建立。

于是在这个基础上,出现了改进的办法,一部分论坛开始撰写并提供将论坛主题按照新闻的样式浏览的页面(典型如mop论坛);同时新闻的分类沿用了论坛本身的分类;前台提取被标记为“新闻”的主题(有些直接使用了精华的功能),并将其罗列出来。

在这一步上,网站看上去已经拥有一个和论坛完全独立的新闻系统——包括分类和分类下的文章,符合我们浏览和阅读新闻信息的习惯,基本达成我们最开始的目标。

但是更多的问题很快地被发现,例如论坛的分类和新闻的分类有着很大的差距,使用论坛的分类将严重的影响新闻系统的形象和独立性;另外,论坛的分类相当程度上并不符合新闻系统所需要的严谨的用词及分类。

为了消除这种影响,一部分站长的作法是开辟新的大区,并设置为隐藏,而前台的读取则全部从这个论坛分区中提取。

但是:将希望发布为新闻的主题集中归类到某一个论坛的分区,将大大减少这些主题的曝光率——将其混杂在原有的分区无疑才是增加其曝光率,吸引众人眼球的最佳办法,同时新闻和论坛系统浑然一体,是为集成。

另外,这看起来也像是一个因噎废食的作法,偏离了我们另外一个最初的目标:
在论坛的任何位置任何一个主题,都可以将其轻松的发布为新闻系统的一个文章,并且保持系统最小的冗余性。

因此,在基于论坛的新闻系统开发中,出现了进一步改进的程序,即为新闻系统提供独立的分类目录,并给论坛的主题附加额外的新闻字段(脱离了原来沿用精华功能的作法)。

管理者可以为这个主题指定需要的分类,而前台则会自动将该分类的所有主题自动罗列出来。

如果需要,加上最新更新、热门新闻、热门评论等浏览导航,加上搜索的接口,所谓的集成式的新闻系统已经看起来很完美了——我们利用了原有论坛的全部资料和后台操作,增加了一个表和一个主题字段,实现了一个有着完全独立界面和结构新闻系统,而我们撰写的程序不过是一些罗列和显示的页面,新闻分类的管理页面,以及将主题加入新闻的管理页面。

但是还是有没有考虑周到的地方,因为我们除了考虑功能以外,并没有考虑到效率的问题。

例如,我们考虑一个每天发贴量高达3000以上的论坛,而对而言,每天的新闻提取数基本也就控制在几十以内:这表示,新闻的主题之间相当地分散,这将给浏览带来压力——访问者也许会偶尔才去看看精华区,但是对新闻系统的访问将是持续而频繁的。

为了避免总是在庞大的主题表中频繁地过滤出这么点可怜的新闻,也许我们需要进一步改善数据库的结构,同时通过增加一定的冗余加快系统的反馈速度。

最后我们得到一个新的表,保存着新闻分类和主题贴之间的关系,以及一小部分冗余数据,包括标题和创建的时间;这样,只有在浏览者点击具体的文章的时候,我们才需要从主数据库中提取并显示相关的内容,而在这以外的时间,浏览者的访问只涉及新闻的分类和映射两个表。

我想,经过这样的规划,所谓的集成式新闻系统,大概已经足够一般用户使用了。

***对于个别的用户,还可以进一步把Channel分类表合并到Board分类表中,隶属于一个完整的数状目录,这样管理分类的程序也就同时在后台得到调用,集成化程度会更高,我个人目前就是使用的这种办法。
http://www.kantoutou.net/skyblue/blog/article.asp?id=218
转自:天河网 | www.skyhe.com

Posted at 7:37 PM | Comments[1]

转自:天河网 | www.skyhe.com

发表评论
We Used Ajax to Post Your Comment!
本站评论系统采用Ajax技术,无刷新发送评论
您的大名 *   
电子邮件  
5+6=? *(请输入“5+6=?”的结果)
评论内容 *


  zwz | 发表日期:2006-09-26 14:02:10
博主学习扎实,赞!