首頁‎ > ‎電子期刊‎ > ‎2008年6月號‎ > ‎

MediaWiki資料庫綱要(下)


使用者表格

接下來我們看到使用者相關的表格,在User table中記錄使者的相關資訊,User table與User groups table為一對多的關係,在User gruops中記錄使用者的群組,例如何者為管理員,也就是一位使用者會有很多角色;讀者會用到的可能就是這兩個表格。

表格名稱 表格說明
User table 描述使用者資訊。
User groups table 描述使用者對應的群組,主要為管理員及行政管理員。
User newtalk table 記錄誰在使用者討論頁面留言,系統傳遞訊息告知使用者。
Ipblocks table 記錄被封鎖的使用者或是IP位址。
Watchlist table 記錄個別使用者的觀察頁面列表。

 User table

此表格用來記錄每位使用者資訊。

名稱 型態 用途
user_id int(5) unsigned 使用者表格PrimaryKey。
user_name varchar(255) 使用者名稱必須是唯一的,且不能是IP形式,不分大小寫。
user_real_name varchar(255) 使用者實際名稱,為選填。
user_password tinyblob 密碼採用md5 hash儲存。
user_newpassword tinyblob 使用者忘記密碼時系統產生的新密碼,經由email寄送。
user_email tinytext 使用者電子郵件。
user_options blob 採用name=value格式並用逗號隔開,描述額外使用者資訊。
user_touched char(14) 使用者最後更新日期,包含頁面異動及使用者喜好設定。
user_token char(32) 儲存使用者資訊。
user_email_authenticated char(14) 儲存使用者的電子郵件是否經過驗證的資訊。
user_email_token char(32) 儲存使用者電子郵件資訊。
user_email_token_expires char(14) 儲存使用者電子郵件是否過期的資訊。
user_registration char(14) 儲存使的註冊相關資訊。
user_newpass_time timestamp 系統產生新密碼時間。
user_editcount int(11) 使用者的編輯次數。

 User groups table

此表格用來記錄使用者所屬群組,主要為管理員及行政管理員。

名稱 型態 用途
ug_id int(5) unsigned 使用者編號
ug_group char(16) 使用者群組名稱,分為sysop、bureaucrat。

 User newtalk table

此表格用來記錄使用者討論頁面的討論使用者編號或IP以用來提醒有新訊息。

名稱 型態 用途
user_id int(5) 使用者編號
user_ip varchar(40) 使用者IP

 Watchlist table

此表格用來記錄使用者列入觀察的頁面。

名稱 型態 用途
wl_user int(5) unsigned 使用者編號
wl_namespace int(11) 觀察頁面Namespace。
wl_title varchar(255) 觀察頁面名稱。
wl_notificationtimestamp varchar(14) 通知更新時間。

連結表格

表格名稱 表格說明
Pagelinks table 用來儲存頁面的內部連結名稱,此內部連結頁面可能不存在。
Templatelinks table 用來儲存頁面的樣板頁面名稱。
Externallinks table 記錄頁面的外部連結。
Categorylinks table 記錄頁面的分類連結。
Imagelinks table 記錄頁面的檔案連結。
Redirect table 記錄某個頁面重新導向的連結。
Interwiki table 記錄跨MediaWiki間的連結。
Langlinks table 記錄語言連結,例如首頁/tw、首頁/jp。

Pagelinks table

名稱 型態 用途
pl_from int(8) unsigned 頁面編號page_id。
pl_namespace int(11) 內部頁面連結的Namespace。
pl_title varchar(255) 內部頁面連結名稱,連結頁面可能不存在或被刪除。

Templatelinks table

名稱 型態 用途
pl_from int(8) unsigned 頁面編號page_id。
pl_namespace int(11) 頁面連結樣版的Namespace。
pl_title varchar(255) 頁面連結樣版名稱,連結頁面可能不存在或被刪除。

Categorylinks table

名稱 型態 用途
cl_from int(8) unsigned 類別頁面編號。
cl_to varchar(255) 類別頁面名稱。
cl_sortkey varchar(86) 類別頁面排序名稱。
cl_timestamp timestamp 類別頁面更新時間。

Imagelinks table

名稱 型態 用途
il_from int(8) unsigned 檔案頁面編號。
il_to varchar(255) 檔案頁面名稱。

Semantic MediaWiki

Page tableattributesrelations為一對多的關係,但是在attributesrelations並未記錄Page table的頁面編號,只記錄完整頁面名稱。

表格名稱 表格說明
attributes 記錄Semantic MediaWiki的屬性值。
relations 記錄Semantic MediaWiki的關性值。
specialprops 記錄Smantic MediaWiki的型態。

attributes

名稱 型態 用途
subject_id int(8) 屬性所在頁面編號。
subject_namespace int(11) 屬性所在頁面之命名空間。
subject_title varchar(255) 屬性所在頁面名稱。
attribute_title varchar(255) 屬性名稱。
value_datatype varchar(31) 屬性資料型態。
value_xsd varchar(255) 屬性值。
value_num double 當屬性型態為列舉型態,此值為列舉值之編號。

relations

名稱 型態 用途
subject_id int(8) 關係所在頁面編號。
subject_namespace int(11) 關係所在頁面之命名空間。
subject_title varchar(255) 屬性所在頁面名稱。
relation_title varchar(255) 關係名稱。
object_namespace int(11) 關係目標頁面命名空間。
object_title varchar(255) 關係目標頁面名稱。

specialprops

名稱 型態 用途
subject_id int(8) 資料屬性頁面編號。
subject_namespace int(11) 資料屬性頁面命名空間。
subject_title varchar(255) 資料屬性頁面名稱。
property_id smallint(6) 資料屬性分類,用於列舉型態。
value_string varchar(255) 資料屬性型態。

系統管理

表格名稱 表格說明
Logging table 記錄使用者對網站的異動資訊。
Recentchanges table 記錄最近更動頁面。
Site stats table 記錄網站統計資訊。
Job table 記錄待處理工作。
Searchindex table 搜尋索引。

結語

在本文以及上文當中介紹了MediaWiki的資料庫綱要,對於想要更進階瞭解的高手可能還嫌不足,會想自行下SQL指令來取得資料,然而對於初入門的使用者卻可借由此文更加瞭解MediaWiki的架構。

Comments