Difference between revisions of "MediaWikiDoc:Schema.doc"

From HypertWiki
Jump to navigation Jump to search
 
(moved to htyp some time ago)
 
Line 1: Line 1:
[[Techniques]]: Software: [[MediaWiki]]: [[MediaWikiDoc:Developer Documents|Developer Documents]]: [[MediaWikiDoc:Schema.doc|Schema.doc]]
{{to htyp}}
==Contents==
The most up-to-date schema for the tables in the database should always be "tables.sql" in the maintenance directory,
which is called from the installation script. Here are a few highlights that may be out of date:
===user===
Wikipedia users
*'''user_id'''
*:integer, primary key, autoincrement
*'''user_name'''
*:Usernames must be unique, must not be in the form of an IP address. _Shouldn't_ allow slashes or case conflicts. Spaces are allowed, and are _not_ converted to underscores like titles. (Conflicts?)
*'''user_password'''
*:Hash of current password.
*'''user_newpassword'''
*:Generated for mail-a-new-password feature
*'''user_email'''
*:Note -- email should be restricted, not public info. Same with passwords. ;)
*'''user_options'''
*:Newline-separated list of name=value pairs.
*'''user_token'''
*:A pseudorandomly generated value that is stored in a cookie when the "remember password" feature is used (previously, a hash of the password was used, but this was vulnerable to cookie-stealing attacks)
===cur===
Wikipedia "current" articles
*'''cur_id'''
*:integer, primary key, autoincrement
*'''cur_namespace'''
*:integer index into list of namespaces.  See the Namespace class for more details.
*'''cur_title'''
*:Title of article (in dbkey form--see Title), without namespace.  The combination of namespace,title should be unique in this table.
*'''cur_text'''
*:Wikitext of the article.
*'''cur_comment'''
*:The summary of the last change.
*'''cur_user'''
*:User id who made the last change, or 0 if unknown.
*'''cur_user_text'''
*:Name of the user above, or IP address.
*'''cur_timestamp'''
*:Time of the last change.
*'''cur_minor_edit'''
*:Flag: 0 or 1 is last change was a "minor" edit.
*'''cur_restrictions'''
*:Who may or may not edit the article.
*'''cur_counter'''
*:Number of times this page has been viewed.
*'''cur_ind_title'''
*:Text version of title for fulltext searches.
*'''cur_ind_text'''
*:Plaintext version of text for fulltext searches.
*'''cur_is_redirect'''
*:1 indicates the article is a redirect.
*'''cur_minor_edit'''
*:1 indicates this was a minor edit.
*'''cur_is_new'''
*:1 indicates this is the first revision of a new entry.
*'''cur_random'''
*:Random value between 0 and 1, used for Special:Randompage
===old===
Historical versions articles. Most fields correspond to the same fields in "cur"
*'''old_id'''
*'''old_namespace'''
*'''old_title'''
*'''old_text'''
*'''old_comment'''
*'''old_user'''
*'''old_user_text'''
*'''old_timestamp'''
*'''old_minor_edit'''
*'''old_flags'''
*:This last is currently unused.
===archive===
Temporary storage of deleted articles which may be restored. Fields correspond to those of "cur" and "old"
*'''ar_namespace'''
*'''ar_title'''
*'''ar_text'''
*'''ar_comment'''
*'''ar_user'''
*'''ar_user_text'''
*'''ar_timestamp'''
*'''ar_minor_edit'''
*'''ar_flags'''
*:This last is currently unused.
===links===
Internal links to existing articles
*'''l_from'''
*:ID of source article. (currently title, may be changed)
*'''l_to'''
*:ID of target article.
===brokenlinks===
Internal links to non-existent articles
*'''bl_from'''
*:ID of source link.
*'''bl_to'''
*:Title of target link.
===imagelinks===
Internal links to images via <nowiki>[[Image:filename]]</nowiki> syntax
*'''il_from'''
*:Title of target article.
*'''il_to'''
*:Filename of target image.
===categorylinks===
Track category inclusions
*'''cl_from'''
*:corresponds to cur_id of the linking page
*'''cl_to'''
*:corresponds to cur_title of the category page
*'''cl_sortkey'''
*:the title of the linking page, or an optional override
*'''cl_timestampe'''
*:when the link was last added
===linkscc===
Stores (possibly gzipped) serialized objects with cache arrays to reduce database load slurping up from links and brokenlinks.
*'''lcc_pageid'''
*:The ID of the linking page
*'''lcc_cacheobj'''
*:A serialized LinkCache object
===image===
Uploaded images and other files
*'''img_name'''
*:Filename.
*'''img_size'''
*:File size in bytes.
*'''img_description'''
*:Description field given during upload.
*'''img_user'''
*:User ID who uploaded the file.
*'''img_user_text'''
*:User name who uploaded the file.
*'''img_timestamp'''
*:Timestamp when upload took place.
===oldimage===
Old versions of images stored for potential revert
*'''oi_name'''
*:Original filename.
*'''oi_archive_name'''
*:Filename of stored old revision; timestamp and exclaimation point prepended to oi_name
*'''oi_size'''
*:File size in bytes.
*'''oi_description'''
*:Description field given during upload.
*'''oi_user'''
*:User ID who uploaded the file.
*'''oi_user_text'''
*:User name who uploaded the file.
*'''oi_timestamp'''
*:Timestamp when upload took place.
===ipblocks===
IP addresses and users blocked from editing
*'''ipb_id'''
*:Primary key, introduced for privacy.
*'''ipb_address'''
*:Blocked IP address in dotted-quad form or user name.
*'''ipb_user'''
*:Blocked user ID or 0 for IP blocks.
*'''ipb_by'''
*:User ID who made the block.
*'''ipb_reason'''
*:Text comment made by blocker.
*'''ipb_timestamp'''
*:Creation (or refresh) date in standard YMDHMS form. IP blocks expire automatically.
*'''ipb_auto'''
*:Indicates that the IP address was banned because a banned user accessed a page through it. If this is 1, ipb_address will be hidden.
===site_stats===
Site-wide statistics
*'''ss_row_id'''
*:Token for where clauses.  There's only one row in this table.  At some point we might want to use a date here so we can get stats-by-date.
*'''ss_total_views'''
*:Number of total views of all pages.
*'''ss_total_edits'''
*:Number of total page edits.
*'''ss_good_articles'''
*:Number of "countable" articles.
===hitcounter===
Stores an ID for every time any article is visited; depending on $wgHitcounterUpdateFreq, it is periodically cleared and the cur_counter column in the cur table updated for the all articles that have been visited.
*'''hc_id'''
*:The ID of an article, representing one hit
===recentchanges===
Will document further when working
===watchlist===
*'''wl_user'''
*:Foreign key -> user_id
*'''wl_namespace'''
*:Namespace -> cur_namespace
*:Note that these should only include even-numbered namespaces for regular pages; associated talk pages (odd numbered namespaces) are folded in.
*'''wl_title'''
*:Page title -> cur_title
*:Note also that the linked page may not exist in page or talk namespace, or at all.
===searchindex===
Used for MySQL fulltext searching
*'''si_page'''
*:The ID of an article
*'''si_title'''
*:The title of an article, indexed for searching
*'''si_text'''
*:The text of an article, indexed for searching
===interwiki===
Recognized interwiki link prefixes
*'''iw_prefix'''
*:The interwiki prefix, (e.g. "Meatball", or the language prefix "de")
*'''iw_url'''
*:The URL of the wiki, with "$1" as a placeholder for an article name
*'''iw_local'''
*:A boolean value indicating whether the wiki is in this project (used, for example, to detect redirect loops)
==Edit Log==
*'''2005-06-13''' Transcribed from docs for MediaWiki version 1.4.5

Latest revision as of 21:11, 7 December 2005

VYPLGO2.64pxh.png This page has been moved to HTYP, the HyperTwin Yellow Pages.