MediaWiki文本表如何连接到类别表?

时间:2012-08-20 13:00:10

标签: php mysql mediawiki

我正在尝试为类别找到相应的文本记录。

例如,如果我有一个“categorylinks”记录的ID 5,我如何找到哪个文本进入该类别?

1 个答案:

答案 0 :(得分:1)

编辑:我仍然不确定您是否要求提供类别页面的文本或类别中的页面文本,所以这两者都是:

类别页面的文字:

select old_text from text, revision, page, categorylinks
where rev_text_id = old_id
    and rev_id = page_latest
    and page_namespace = 14
    and page_title = cl_to
    and cl_from = <cl_from entry in categorylinks table>

类别中网页的文字:

select old_text from text, revision, page, categorylinks
where rev_text_id = old_id
    and rev_id = page_latest
    and page_id = cl_from
    and cl_to = <cl_to entry in categorylinks table>

更多解释

基本上,在categorylinks中,cl_title是类别页面的标题。因此,您可以使用page_titlepage_namespace = 14(类别命名空间)在页面表中查找。获得正确的页面后,该行的page_latest字段等于修订表中的rev_id。这为您提供了类别页面的最新修订版。修订表有一个rev_text_id字段,等于文本表中的old_id字段。文本表中的old_text是您的文字。

任何时候你想要一个页面的文本它基本上是这样的。查找页面数据库记录。然后:page.page_latest = revision.rev_id and revision.rev_text_id = text.old_id

另请参阅:The MediaWiki database schema