蜗牛天堂

www.sourcejoy.com

导航

博客系统的结构简述

前几年开始大量流行博客,连要饭的都更博,博客火得就剩一个字——火!有人要搞博客,自然玩程序的就要跟进,搞出各种博客系统来,什么wordpress、zblog等等。界面大同小异,基本的东西就那么一点,今天这篇文章就大体总结一下博客系统的结构。

我们先来说说博客系统的特征:
1、基于web用户界面
2、以分类的形式组织博客记录
3、可定制的页面模板
4、评论、反响链接以及引用
5、为相关软件提供web服务接口
6、支持多媒体文件上传

基本上所有的博客系统都有以上的这些功能,然后在这些功能的基础上进行扩展的。

下面讲讲最重要的数据模型
数据模型定义了存储在系统中的对象类型,以及这些对象的关系,下面罗列了基本的博客系统的对象模型。
用户(users):一个博客系统可以有多个用户,每个用户可能拥有多个博客,也可能没有博客。
博客(blogs):一个服务器可以有多个博客也可以只有一个博客,每个用户可能有0~n个博客,但一个博客至少有 一个用户。
博客记录(blog record):博客的最重要组成部分,由一个或多个作者所写。
分类(category):每个博客都有一套分类,每条博客记录都可以指定一个分类。博客记录可以属于多个分类,也可以属于一个分类。而分类可以为树状分类(就是有父级子集的分类系统)。
模板(template):博客外观是由一套模板组成,通过模板语言来展现博客页面。
资源(resource):比如:压缩包、图片、视频等,用户可以在博客记录或博客中使用它们。
偏好(settings):每个博客都有一套参数选项,来做博客的个性化设置。

经过上面的表述基本上一个博客所需要的东西就都有啦。如果要其他的系统就要看开发者个人喜好了,比如友情链接等。

接下来就详细讲一下最重要的博客记录的数据结构。
id:博客记录的唯一标识
固定链接(permalink):固定url,便于搜索查找和用户访问。
标题(title):博客记录的题目。
内容(content):不用说啦,正文。
摘要(summary):博客记录内容的简单描述。
链接(link):如果博客记录是转发的,该属性就记录的原文的url
状态(status):博客发布过程中的状态,如:草稿、已审核、已发布。
发布时间(published):博客记录的发布时间。
更新时间(updated):博客记录最后更新时间。
作者(authors):创建博客记录的人。
参数(config):博客记录可能游戏参数,比如:博客语言、是否可以评论、博客记录所需插件等。

博客记录大体上就是这样了,接下来描述一下和博客记录有关的数据。
分类(ctegory):博客记录可能属于一个或多个分类。这个可以在具体设计时,根据需要来做。
附件(attachments):在发布博客记录时,用户上传的多媒体文件。比如:压缩包、图片、视频等。
评论(comments):访客和博客记录发布者的互动,主要就是通过评论来进行的。
反响链接(trackbacks):其他博客可能在自己博客上写了一些东西,并在其间有些文字响应你的博客记录,接着他会发给你一个反响链接。反向链接协议是由MovableType作者设计的,可以使一个博客服务器通知另一个博客服务器,它的博客记录中引用来自该服务器的博客记录。这个通知就是反向链接,博涵题目、摘要、url、博客名称。
引用(referrers):如果其他网站通过链接到你的博客记录来响应你的博客,你的博客服务器能从web请求或web服务器日志中捕获这些引用url。通过它你可以知道哪些网站提到或链接到你的博客记录。

最后,简单讲一下用户、权限以及博客组。
阅读者(reader):阅读一个或多个博客。大多数博客系统设置为任何人。
评论者(commenter):为一个或多个博客添加评论。大多数博客允许任何人评论,有些则是限制有相关权限的人评论。
编辑者(editor):可在一个或多个博客上建立、编辑和发布博客记录。
作者(author)作者允许在一个或多个博客上建立博客记录,但不能发布。有可能拥有博客记录分类的设置权限。
管理员(admin):可以管理博客的分类、页面模板、书签、附属资源等。

博客系统大概就是这个样子啦。具体实现就是看开发者的设计和开发功力啦。

最后,有人会问,为啥搞这种文章出来,有什么意义?我想如果对当前互联网应用架构了熟于胸的话,那么在我们平时的工作中将会游刃有余地设计任何互联网应用。

始发于http://www.sourcejoy.com/other_dev_tech/blog_system_struct.html

posted on 2010-05-26 20:41  爱吃鱼的蜗牛  阅读(1496)  评论(4编辑  收藏  举报