檢視 Mediawiki 資料表說明 的原始碼
←
Mediawiki 資料表說明
跳轉到:
導覽
、
搜尋
根據以下的原因,您並無權限去做編輯這個頁面:
您剛才的請求只有這個使用者組的使用者才能使用:
使用者
你可以檢視並複製本頁面的原始碼。
[[分類:Mediawiki]] ==各版本資料表異動== *解析程式在:「jendo.org/wikiStudy/wikiTable.php?wiki1=資料庫名1&wiki2=資料庫名2」 *資料表說明文件在:[https://www.mediawiki.org/wiki/Manual:Page_table/zh https://www.mediawiki.org/wiki/Manual:表名_table] *請見 2014.8.26 丁丁寄給士賢的信 *[[Mediawiki_諸site]] 表列各伺服器上的 mediawiki ===1.17到1.21=== *增加四張表 *#wiki_site_identifiers 保留網站相關認證 *#wiki_sites 保存wiki網站相關訊息 *#wiki_uploadstash 保存檔上傳時(上傳完成前)的資訊 *#wiki_user_former_groups 保存使用者曾經所在的族群 *減去一張表 *#wiki_trackbacks 可以加入一個引用到資料中 ===1.21到1.22=== *減去一張表 *#wiki_math 可以加入數學公式語法<math> ... </math> ===1.22到1.23=== *減去一張表 *#wiki_external_user ==1.17 版== 共 49 張資料表 {{:Mediawiki_名字空間}} ==參考== [http://www.mediawiki.org/wiki/Category:MediaWiki_database_tables 分類:MediaWiki諸表] [http://www.mediawiki.org/wiki/Manual:Database_layout 資料庫佈局] ==頁資料表== 1.31 版之前諸表對應關係(表名省略前綴) <table class=nicetable> <tr><th>table</th> <th>page</th> <th style='border-bottom:none'></th> <th>revision</th> <th style='border-bottom:none'></th> <th>text</th></tr> <tr><th rowspan=2>field</th> <td>page_id</td><th rowspan=2 style='border-top:none'>↘</th> <td>rev_text_id</td> <th rowspan=2 style='border-top:none'>↘</th> <td></td></tr> <tr> <td></td> <td>rev_page</td> <td>old_id</td></tr> </table> 1.31 版之後(含)諸表對應關係(表名省略前綴) <table class=nicetable> <tr><th>table</th> <th>page</th> <th style='border-bottom:none'></th> <th>revision</th><th style='border-bottom:none'></th> <th>slots</th> <th style='border-bottom:none'></th> <th>content</th> <th style='border-bottom:none'></th> <th>text</th></tr> <tr><th rowspan=2>field</th> <td>page_id</td><th rowspan=2 style='border-top:none'>↘</th> <td>rev_id</td> <th rowspan=2 style='border-top:none'>↘</th> <td>slot_content_id</td><th rowspan=2 style='border-top:none'>↘</th> <td>content_address</td><th rowspan=2 style='border-top:none'>↘</th> <td></td></tr> <tr> <td></td> <td>rev_page</td> <td>slot_revision_id</td> <td>content_id</td> <td>old_id</td></tr> </table> ※content_address 欄之欄值用「tt:<id>」表示,而 <id> 是 text.old_id 。<br/> 但使用外部存儲時 content_address 欄的欄值表示可能會有所不同。 *不過1.31 版之後經測試可以有以下化簡的對應關係 <table class=nicetable> <tr><th>table</th> <th>page</th> <th style='border-bottom:none'></th> <th>revision</th> <th style='border-bottom:none'></th> <th>text</th></tr> <tr><th rowspan=2>field</th> <td>page_id</td><th rowspan=2 style='border-top:none'>↘</th> <td>rev_id</td> <th rowspan=2 style='border-top:none'>↘</th> <td></td></tr> <tr> <td></td> <td>rev_page</td> <td>old_id</td></tr> </table> 1.31 版之前共 7 表。 1.31 版之後共 9 表。 核心三表: #wiki_page 頁碼、頁名 #wiki_revision 版本,依其頁碼欄(rev_page)對到 wiki_page ,依其內文碼欄(rev_text_id)對到 wiki_text 資料表 #wiki_text 內文 輔助四表 #wiki_searchindex 將各頁的頁名、內文編成 ASCII code ,以利蒐尋。 #wiki_page_restrictions 列出保護頁。 #wiki_recentchanges 以異動為主體,列出每一次異動的重點。 #wiki_page_props 特殊表現 1.31 版之後增加兩表 #wiki_slots #wiki_content *wiki_slots *#slot_revision_id:參考到 revision.rev_id 或 archive.ar_rev_id。 slot_revision_id 和 slot_role_id 一起構成主鍵。 *#slot_role_id:參考 slot_roles 表的 role_id 欄,目前只發現一種 role_id 的值,即 1 ,代表的 role 是 main。 *#slot_content_id:參考 content.content_id 。 *#slot_origin:修訂版本的 revision.rev_id 其實是源自於插槽的內容。要查找更改了插槽的修訂,請查找 slot_origin = slot_revision_id。 *wiki_content *#content_id:內容物件的 ID *#content_size:內容物件的標稱大小 *#content_sha1:內容物件的名義哈希值 *#content_model:參考 content_models 表的 model_id 欄。1 為 wikitext,2 為 css 。請注意,如未指定序列化格式;除非自動檢測到,否則應假定其採用模型的預設格式。 *#content_address:結構通常為: tt:<id> 其中 <id> 是引用 text 表的 old_id 欄的值。使用外部存儲時可能會有所不同。 *wiki_page 頁碼、頁名 *#page_id:頁碼 *#page_namespace:本頁所屬的名字空間 *#page_title:頁名,檔案則為檔名。 *#page_restrictions:用逗號分隔的Permission Key誰可移動或保護頁面,在1.10版已移至page restrictions table。 *#page_counter:訪問次數 *#page_is_redirect:是否重導向,其值為0或1,1為redirect頁面。 *#page_is_new:是否新建頁,其值為0或1,1為新頁面。 *#page_random:0至1的隨機數,用在隨機頁面的功能。 *#page_touched:時間戳記(年月日時分秒),當頁面需要重新排版時會更新,以使快取失效,包括:編輯後、權限更改、創建鏈接頁面、刪除、模板更改,頁面創建時填入$dbw->timestamp()。預設值為'\0\0\0\0\0\0\0\0\0\0\0\0\0\0'。 *#page_latest:本頁最後的版本 id ,其值為revision裡的rev_id。 *#page_len:頁長度,檔案則為註解長度,為原始Wiki語法統計的Bytes數。 *#page_content_model:內容模型,1.21版之後的新增欄位,有五種值:wikitext(含檔案)、javascript、css、text、json。和 revision 表中的 rev_content_model 欄同值;後者在1.31版本中棄用。 *#page_links_updated:1.23版之後的新增欄位,重新解析 wiki 頁時,更新此時間戳記,並更新所有的連結跟蹤表。 *wiki_text 頁內文(整合各段) *#old_id:過程頁編碼 *#old_text:過程頁內文,檔案則為註解。 *#old_flags:內文的flag列表,包含gzip代表壓縮內容、utf8代表內容為UTF編碼、object代表內容有PHP物件。 *wiki_revision 修訂版 *#rev_id:流水號 *#rev_page:頁碼 *#rev_text_id:內文碼,對到text表中的old_id。可能多個版本共用一個text的old_id;例如版本只有改變metadata。 *#rev_comment:修訂註解,如「新頁面: …」「已保護…」「/* 段落名 */」「空白」 *#rev_user:編輯者的使用者編號,若為0則是匿名使用者或是匯入。 *#rev_user_text:編輯者的帳號或是匿名使用者的IP。 *#rev_timestamp:版本修改時間 *#rev_minor_edit:是否為小修訂,若為1為小修改,0為正常修改。 *#rev_deleted:版本是否被刪除,尚未使用。 *#rev_len:該版長度,檔案則為註解長度。 *#rev_parent_id:父修訂版id *wiki_searchindex 頁名及內文編成 ASCII code *#si_page:頁碼 *#si_title:頁名,非UTF8字直接顯示,UTF8字在「u8」至空白之間夾入各byte的十六進位ASCII code。 *#wiki_searchindex:頁內文,非UTF8字直接顯示,UTF8字在「u8」至空白之間夾入各byte的十六進位ASCII code。 *wiki_page_restrictions 保護頁 *#pr_page:頁碼 *#pr_type:限制類型,分edit、move *#pr_level:那一種群組以上的人才可以操作,如sysop(管理者)(完全保護),如autoconfirmed(已確認註冊者)(半保護),或註冊者(半保護)。 *#pr_cascade:1為連鎖保護,連本頁中的Template及影像都一起保護。 *#pr_user:目前為空值暫無用途,未來可用於個別使用者權限管理。 *#pr_expiry:保護期,infinity代表無限長,空值則為永久有效。 *#pr_id:流水號 *wiki_recentchanges 新近異動 *#rc_id:流水號 *#rc_timestamp:時間 *#rc_cur_time:時間 *#rc_user:使用者編碼 *#rc_user_text:使用者帳號 *#rc_namespace:0,內容頁;2,特殊頁 *#rc_title:操作對象,帳號或頁名 *#rc_comment:改變註解,如「新頁面: …」「/* 段落名 */」「空白」 *#:… *wiki_page_props 特殊表現 *#pp_page:頁碼 *#pp_propname:特性名稱,如 notoc 代表不秀出目錄框 *#pp_value:特性值,如 notoc 不需要值 ===建新頁(1.30 版前,完整)=== #wiki_page 新增一筆,得到頁碼。 #wiki_revision 新增一筆,得到內文編碼 #wiki_text 新增一筆,塞入內文,換頁碼時免改。 #wiki_searchindex 增一筆,頁名、內文編成 ASCII code #wiki_pagelinks 增0-數筆,列出本頁產生的各內部連結 #wiki_externallinks 增0-數筆,列出本頁產生的各外部連結 #wiki_logging 增一筆,記入時間、帳號、版本編碼、父版本編碼 ===建新頁(1.31 版後,最少)=== *wiki_page 指定 ID 新增一筆。如: <pre style='margin-left:24pt'>insert into wiki_page set page_id=161, page_namespace=14, page_title='嘉禾書院', page_restrictions='', page_is_redirect=0, page_is_new=1, page_random='0.099645685474', page_touched='20220602050041', page_links_updated='20220602045523', page_latest=0, page_len=0, page_content_model='wikitext'</pre> *wiki_text 指定 ID 新增一筆。如: <pre style='margin-left:24pt'>insert into wiki_text set old_id=5679, old_text='', old_flags='utf-8'</pre> *wiki_revision 指定 ID 新增一筆。如: <pre style='margin-left:24pt'>insert into wiki_revision set rev_id=5679, rev_page=161, rev_comment_id=0, rev_actor=0, rev_timestamp='20240322081500', rev_minor_edit=0, rev_deleted=0, rev_len=0, rev_parent_id=0, rev_sha1='phoiac9h4m842xq45sp7s6u21eteeq1'</pre> :增完上述三表後,可見但不可編 *wiki_slots 指示原始碼語法性質。如: <pre style='margin-left:24pt'>insert into wiki_slots set slot_revision_id=5679, slot_role_id=1, slot_content_id=5679, slot_origin=5679</pre> *wiki_slots 指示原始碼語法性質。如: <pre style='margin-left:24pt'>insert into wiki_content set content_id=5679, content_size=0, content_sha1='phoiac9h4m842xq45sp7s6u21eteeq1', content_model=1, content_address='tt:5679'</pre> ===換頁碼=== 要考慮維護下一段的連結保持正確 ===換頁名=== #涉及 wiki_page , wiki_searchindex , wiki_recentchanges , wiki_pagelinks #先查 wiki_pagelinks ,看有沒有其他頁連向此頁。 #改 wiki_page , wiki_pagelinks 的頁名欄中,改舊頁名為新頁名。 #wiki_searchindex 會自動重做,毋須手動處理。 #wiki_recentchanges , wiki_logging ,在修改時點後會表現新頁名,毋須手動處理。 ===搜尋=== *目前新版的搜尋方式有分完整版與簡易版 #完整版就是照著page-->revision-->slots-->content-->text一層一層慢慢搜尋下去 #簡易版可以直接跳過中間的slots與content #*slots資料表中的slot_content_id與slot_revision_id數值相同(slot_revision_id則是對應到revision資料表中的rev_id) #*content資料表中content_id(與slot_content_id相同)直接對應到content_addresss(差了tt:) #*text資料表中的old_id是對應到content_id<br><br> #*所以可以按照舊的方法 #**舊版對應關係:page(page_id)-->(rev_text_page)revision(rev_id)--------->(old_id)text #*將rev_text_id改為rev_id即可 #**新版簡易對應關係:(page(page_id)-->(rev_page)revision(rev_id)--------->(old_id)text #*以下為範例程式:<br>select page_id from wiki_page,(select rev_page pid,max(rev_id) tid from wiki_revision group by pid order by pid) r left join wiki_text on tid=old_id where page_id=pid && page_namespace=0 && old_text LIKE '%".$str."%' order by page_id ==連結資料表== #wiki_pagelinks 內部連結,列出頁與頁之間的連結關係。 #wiki_templatelinks 樣板連結 #wiki_externallinks 外部連結,列出各頁的外部連結。 #wiki_categorylinks 分類連結,參見分類段 #wiki_imagelinks 檔案連結,參見檔案段 #wiki_redirect 重新導向連結 #wiki_interwiki及wiki_iwlinks 視為內部連結的跨網站間的連結 #wiki_langlinks 記錄語言連結,例如首頁/tw、首頁/jp。 *wiki_pagelinks 內部連結,可導出「特殊:待撰頁面」 *#pl_from:包含連結共筆頁的頁碼 *#pl_namespace:連結目的地的名字空間代碼 *#pl_title:連結目的地的頁名,因為目的地可能已產生也可能未產生,所以只能用頁名不能用頁碼 *wiki_templatelinks 樣板連結 *#tl_from:包含連結共筆頁的頁碼 *#tl_namespace:連結目的地的名字空間代碼 *#tl_title:連結目的地的頁名,因為目的地可能已產生也可能未產生,所以只能用頁名不能用頁碼 *wiki_externallinks 外部連結 *#el_from:包含外部連結的頁碼 *#el_to:外部連結的 URL *#el_index:同el_to,但逆排構成 DN 的各個字(以.分隔)。 *wiki_redirect 重導向 *#rd_from:重導向頁的頁碼 *#rd_namespace:重導向目的地的名字空間 *#rd_title:重導向目的地的頁名 *#rd_interwiki *#rd_fragment *[[mw:Manual:Interwiki_table/zh|wiki_interwiki]] 百多個可以跨 wiki 連結網站,丁丁再加上數個。 *#iw_prefix:其他網站的前置字,視為本網站的名字空間 *#iw_url:網站的 URL 位置加上頁名參數 *#iw_api:檔案 api.php 的 URL。 *#iw_wikiid:資料庫的名稱(用於使用 wfGetLB( 'wikiid' ) 建立的連線) *#iw_local:通知 MediaWiki 如何處理來自外部來源的維基鏈接。如果 iw_local 為'''1''',則將這些鏈接視為從本地 Wiki 內部產生。 *#iw_trans:允許從另一個 MediaWiki 安裝中嵌入模板(或其他頁面)。$wgEnableScaryTranscluding 和 iw_trans 都需要打開。 *wiki_iwlinks *#iwl_from:連往其他網站的本站共筆頁頁碼 *#iwl_prefix:其他網站的前置字,視為本網站的名字空間 *#iwl_title:要送到其他網站 URL 中的參數 *wiki_langlinks *#ll_from:使用語言連結的頁碼 *#ll_lang:目的連結的國家語言 *#ll_title:目的連結的頁名 ==檔案資料表== 檔案實際 images 資料夾中,路徑放在什麼地方目前不明 *wiki_page *#page_title:列出檔名 *#page_len:註解長度 *wiki_text *#old_text:註解 *wiki_revision *#rev_len:註解長度。 *wiki_image:上傳檔 *#img_name:檔名 *#img_size:檔案大小 *#img_width:圖寬 *#img_height:圖高 *#img_metadata:serialize化的描述資料,如frameCount、loopCount、時間… *#img_bits:通常為8,代表8bit *#img_media_type:BITMAP代表點陣圖, *#img_major_mime:mime之大項如image *#img_minor_mime:mime之小項如jpeg、png *#img_description:註解 *#img_user:帳號編碼 *#img_user_text:帳號 *#img_timestamp:年月日時分秒 *#img_sha1:檔案的SHA1唯一驗證碼 *wiki_imagelinks *#il_from:含圖連結的頁碼。imageLinkFrom *#il_to:檔名。imageLinkTo ==分類== *wiki_page 頁碼、頁名 *wiki_category *#cat_id 分類碼 *#cat_title 分類名 *#cat_pages 包含了幾頁 *#cat_subcats 子分類數目 *#cat_files 包含檔案數 *#cat_hidden 是否隱藏 *wiki_categorylinks 那些共筆頁屬於那些分類 *#cl_from 共筆頁的id *#cl_to 共筆頁隸屬分類的分類名 *#cl_sortkey 共筆頁的頁名(title), *#*如為英文則依 cl_collation 欄的指示全部轉大小寫 *#*如為中文拆成一byte一byte,轉成ASCII以十六進位表示後串起來 *#*有時會將「MediaWiki:頁面分類」轉成「YMFL 維基百科:頁面分類」,再轉成ASCII以十六進位表示後串起來;將「MediaWiki:命名常規」轉成「命名常規 命名常規」,再轉成ASCII以十六進位表示後串起來。 *#cl_sortkey_prefix 共筆頁頁名的前置字,即前一欄空白之前的字串,大多數為空值,如上項之例「頁面分類」前置字為「YMFL」、「命名常規」前置字為「命名常規」。 *#cl_timestamp 建立時間 *#cl_collation 連結的整理方式,如「uppercase」(大寫) *#cl_type 連結的型態,如「page」(條目頁),「subcat」(子分類) ==帳號群組== *wiki_user 使用者帳號及編碼 *#user_id:使用者表格PrimaryKey。 *#user_name:使用者名稱必須是唯一的,且不能是IP形式,不分大小寫。 *#user_real_name:使用者實際名稱,為選填。 *#user_password:密碼採用md5hash儲存。 *#user_newpassword:使用者忘記密碼時系統產生的新密碼,經由email寄送。 *#user_email:使用者電子郵件。 *#user_options:採用name=value格式並用逗號隔開,描述額外使用者資訊。 *#user_touched:使用者最後更新日期,包含頁面異動及使用者喜好設定。 *#user_token:儲存使用者資訊。 *#user_email_authenticated:儲存使用者的電子郵件是否經過驗證的資訊。 *#user_email_token:儲存使用者電子郵件資訊。 *#user_email_token_expires:儲存使用者電子郵件是否過期的資訊。 *#user_registration:儲存使的註冊相關資訊。 *#user_newpass_time:系統產生新密碼時間。 *#user_editcount:使用者的編輯次數。 *wiki_user_groups 各帳號隸屬於何種群組,已註冊帳號預設為「使用者」,不用登錄於本表。 *#ug_id:使用者編號 *#ug_group:使用者群組名稱,分為bureaucrat(行政員,授權者)、sysop(管理員)、interface-admin(介面管理員)…。[https://zh.wikipedia.org/wiki/Wikipedia:在編輯記錄中標示使用者權限 群組列表]、[https://zh.wikipedia.org/wiki/Wikipedia:使用者權限級別 群組/權限列表]。 *wiki_user_properties 各帳號的額外屬性,如有無要不要時間校正、綽號、要不要記住密碼、性別、 watch list token 等 *#up_user:使用者編號 *#up_property:屬性 *#up_value:屬性值 *:屬性名、值對:'''時區調整''':('timecorrection','ZoneInfo|480|Asia/Taipei');('gender','female'or'male');('language','zh-hant');'''字體'''(variant):繁體(zh-hant)、台灣正體(zh-tw);('rememberpassword','1');('watchlisttoken',隨機長字串) *wiki_user_newtalk:記錄使用者討論頁面的討論使用者編號或IP以用來提醒有新訊息。 *#user_id:使用者編號 *#user_ip:使用者IP *wiki_watchlist:記錄使用者列入觀察的頁面。 *#wl_user:使用者編號。 *#wl_namespace:觀察頁的名字空間。 *#wl_title:觀察頁的頁名。 *#wl_notificationtimestamp:通知更新時間。 ===新增使用者=== #wiki_user 加一筆 #wiki_user_groups 可能不加,要管理員以上(bureaucrat,sysop)的人才會加。 #wiki_user_properties 加0筆、一筆至數筆,如要不要記住密碼 #wiki_recentchanges 加1筆,記newusers這個動作,但不重要。 #wiki_logging 加1筆,記newusers這個動作,但不重要。 ==系統管理== *wiki_logging 登入日誌 *wiki_site_stats 網站統計資訊 *wiki_job 待處理工作 ==次要資料表== 共 6 表。 *wiki_l10n_cache 各種語言中 lc_key 的多值定義 *wiki_module_deps 使用模組、布景、參數 *wiki_msg_resource 19種功能資源(如jquery)的文字編碼及參數陣列 *wiki_msg_resource_links 10種mediawiki自行開發功能資源之訊息 *wiki_objectcache 各種臨時性操作物件的生命週期 *wiki_archive 記錄刪除的頁面資訊。 ==空值資料表== 目前 17 表。 *wiki_change_tag *wiki_external_user:追蹤外部用戶帳戶,如果使用 ExternalAuth 時。使用版本在 1.16 – 1.21 版期間。隨著 ExternalAuth 功能被廢止,本表在 MediaWiki1.22 後被去除。應該使用 AuthPlugin 。 *wiki_filearchive:記錄刪除的檔案資訊,必須要將$wgFileStore參數啟動才會記錄。 *wiki_hitcounter *wiki_ipblocks *wiki_log_search *wiki_math:記錄數學公式相關資訊,主要為原始的數學公式語法及解析後的數學公式語法。 *wiki_oldimage:記錄舊版的上傳檔案資訊,其中舊版檔案放置於/image/archive目錄。 *wiki_protected_titles *wiki_querycache *wiki_querycache_info *wiki_querycachetwo *wiki_tag_summary *wiki_trackbacks *wiki_transcache *wiki_updatelog *wiki_valid_tag
此頁面包含以下模板:
Mediawiki 名字空間
(
檢視原始碼
)
返回到
Mediawiki 資料表說明
。
導航
個人工具
登入
名字空間
頁面
討論
變換
檢視
閱讀
檢視原始碼
檢視歷史
動作
搜尋
導覽
首頁
近期變動
隨機頁面
使用說明
工具箱
連入頁面
相關頁面修訂記錄
特殊頁面
頁面資訊