美国主机Lunarpages

Mediawiki中文技术论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4781|回复: 0

在MediaWiki平台下模拟数据库功能

[复制链接]
发表于 2011-5-27 11:12:40 | 显示全部楼层 |阅读模式
RAKsmart美国服务器
Wiki网站的数据库功能需求
国内现在有不少Wiki网站还是使用的MediaWiki平台,虽然有hoodong也推出中文的Wiki软件系统,但似乎功能上还需要完善。MediaWiki的建站、编辑中一直存在用户界面不友好的问题,但其功能却是非常强大的,也远比百度百科目前使用百度自己开发的系统要好得多。
MediaWiki主要适合做Wiki网站用,并不适合做结构化数据库的应用,但在人工搜索的应用中就感觉很需要一些辅助的数据库,例如页面的质量检验数据记录(包括质量评分、页面创建者、创建时间、合格者、合格时间、审核者、审核时间、维护周期等),又例如用户的属性记录(包括注册日期、第一个实验页面、是否兼职者、是否审核员等),有了这些数据才能更好地组织管理,可能其它的Wiki网站在深入运作的工程中也会遇到类似的需求。
国外围绕MediaWiki开发了不少扩展程序,但好像也没有一个扩展很适合,可以考虑用通用的扩展程序及MediaWiki自身的功能来实现模拟数据库功能。
需要实现的模拟数据库功能主要就是数据库的结构设置、数据库的数据添加删除修改、数据库的数据查询、数据库的报表输出等基本操作。
数据库的结构设置
使用MediaWiki自带的模板功能可实现,在模板中的参数就是数据库的字段。例如:
{{QC
|质量=
|创建者=
|创建年=
|创建月=
|创建日=
|合格者=
|合格年=
|合格月=
|合格日=
|审核者={{<includeonly></includeonly>subst:CURRENTUSER}}
|审核年={{<includeonly></includeonly>subst:CURRENTYEAR}}
|审核月={{<includeonly></includeonly>subst:#expr:{{<includeonly></includeonly>subst:CURRENTMONTH}}}}
|审核日={{<includeonly></includeonly>subst:CURRENTDAY}}
|维护者=
|维护年=
|维护月=
|维护日=
|维护周期年=
|维护周期月=
|维护周期日=
}}
上面的例子中,QC就是一个模板,也可以看作一个数据库表的定义,而“质量”、“创建者”、“创建年”等模板参数,就可以看作数据库表的字段。
数据库的数据添加删除修改
创建、修改、删除调用定义好模板的页面及其参数,也就是对这个模拟的数据库进行数据添加、删除、修改等操作,一个页面相当于数据库的一条记录。
数据库的数据查询
这是比较有难度的一个地方,仅仅通过MediaWiki自带的Category分类功能实现的功能是很有限的,远远不能满足实际需要,主要是使用DynamicPageList2这个叫做动态页面列表的扩展程序来实现的,以前也一直在用这个扩展,主要只是用到其最基本的某个分类新页面列表等功能,而这里为了实现一些联合查询,除了一般的按照分类来查询以外,还可以按照名字空间、链接到的页面、是否使用某模板、页面标题等多种条件来进行联合查询,并可以灵活使用“与、或、非”等逻辑组合。

数据库的报表输出
一般情况下使用动态页面列表扩展时一般只用到列表排序、数量控制等简单输出控制,这里在实现质量检验等功能的时候可以见识到这个扩展的强大:可以修改列表抬头、增加页面大小、编辑者、编辑时间、浏览次数,还可以包含符合条件的页面中的部分段落内容到列表中,使用自定义的模式可以仔细控制列表的输出格式。

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

美国主机评测网站

Archiver|手机版|小黑屋|Mediawiki中文技术论坛

GMT+8, 2024-11-24 20:59 , Processed in 0.053654 second(s), 16 queries .

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表