<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://mediawiki.wissen-ahrensburg.de/index.php?action=history&amp;feed=atom&amp;title=MediaWiki_%E2%80%93_Datenmodell_%28Rust%29</id>
	<title>MediaWiki – Datenmodell (Rust) - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.wissen-ahrensburg.de/index.php?action=history&amp;feed=atom&amp;title=MediaWiki_%E2%80%93_Datenmodell_%28Rust%29"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=MediaWiki_%E2%80%93_Datenmodell_(Rust)&amp;action=history"/>
	<updated>2026-08-19T17:39:56Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in Dokument</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://mediawiki.wissen-ahrensburg.de/index.php?title=MediaWiki_%E2%80%93_Datenmodell_(Rust)&amp;diff=32&amp;oldid=prev</id>
		<title>Thorsten am 12. August 2026 um 14:19 Uhr</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=MediaWiki_%E2%80%93_Datenmodell_(Rust)&amp;diff=32&amp;oldid=prev"/>
		<updated>2026-08-12T14:19:24Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw-interface=&quot;&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;de&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Nächstältere Version&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Version vom 12. August 2026, 14:19 Uhr&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Zeile 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act). &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dieses Dokument bildet das Kern-Datenmodell von &amp;#039;&amp;#039;&amp;#039;MediaWiki&amp;#039;&amp;#039;&amp;#039; (wie es z. B. Wikipedia zugrunde liegt) als Rust &amp;lt;code&amp;gt;struct&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;enum&amp;lt;/code&amp;gt; ab. Orientiert an den zentralen MediaWiki-DB-Tabellen (&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;revision&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pagelinks&amp;lt;/code&amp;gt;, …). Es ist nur das Modell – keine Business-Logik.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Dieses Dokument bildet das Kern-Datenmodell von &amp;#039;&amp;#039;&amp;#039;MediaWiki&amp;#039;&amp;#039;&amp;#039; (wie es z. B. Wikipedia zugrunde liegt) als Rust &amp;lt;code&amp;gt;struct&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;enum&amp;lt;/code&amp;gt; ab. Orientiert an den zentralen MediaWiki-DB-Tabellen (&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;revision&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pagelinks&amp;lt;/code&amp;gt;, …). Es ist nur das Modell – keine Business-Logik.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l262&quot;&gt;Zeile 262:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Zeile 262:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                                   └──generates──▶ RecentChange&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                                                   └──generates──▶ RecentChange&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;/pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;==Hinweis==&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Hinweis: Diese Inhalte wurden mit Unterstützung von Künstlicher Intelligenz erstellt und redaktionell überprüft (Transparenzhinweis gemäß Art. 50 EU AI Act).&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Rust]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Rust]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:MediaWiki]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:MediaWiki]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Datenmodell]]&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;[[Category:Datenmodell]]&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Thorsten</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.wissen-ahrensburg.de/index.php?title=MediaWiki_%E2%80%93_Datenmodell_(Rust)&amp;diff=23&amp;oldid=prev</id>
		<title>Thorsten: Die Seite wurde neu angelegt: „ Dieses Dokument bildet das Kern-Datenmodell von &#039;&#039;&#039;MediaWiki&#039;&#039;&#039; (wie es z. B. Wikipedia zugrunde liegt) als Rust &lt;code&gt;struct&lt;/code&gt;/&lt;code&gt;enum&lt;/code&gt; ab. Orientiert an den zentralen MediaWiki-DB-Tabellen (&lt;code&gt;page&lt;/code&gt;, &lt;code&gt;revision&lt;/code&gt;, &lt;code&gt;text&lt;/code&gt;, &lt;code&gt;user&lt;/code&gt;, &lt;code&gt;category&lt;/code&gt;, &lt;code&gt;pagelinks&lt;/code&gt;, …). Es ist nur das Modell – keine Business-Logik.  == Namespace ==  MediaWiki organisiert Seiten über feste, nummerierte…“</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.wissen-ahrensburg.de/index.php?title=MediaWiki_%E2%80%93_Datenmodell_(Rust)&amp;diff=23&amp;oldid=prev"/>
		<updated>2026-08-12T03:40:04Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „ Dieses Dokument bildet das Kern-Datenmodell von &amp;#039;&amp;#039;&amp;#039;MediaWiki&amp;#039;&amp;#039;&amp;#039; (wie es z. B. Wikipedia zugrunde liegt) als Rust &amp;lt;code&amp;gt;struct&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;enum&amp;lt;/code&amp;gt; ab. Orientiert an den zentralen MediaWiki-DB-Tabellen (&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;revision&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pagelinks&amp;lt;/code&amp;gt;, …). Es ist nur das Modell – keine Business-Logik.  == Namespace ==  MediaWiki organisiert Seiten über feste, nummerierte…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&lt;br /&gt;
Dieses Dokument bildet das Kern-Datenmodell von &amp;#039;&amp;#039;&amp;#039;MediaWiki&amp;#039;&amp;#039;&amp;#039; (wie es z. B. Wikipedia zugrunde liegt) als Rust &amp;lt;code&amp;gt;struct&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;enum&amp;lt;/code&amp;gt; ab. Orientiert an den zentralen MediaWiki-DB-Tabellen (&amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;revision&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;pagelinks&amp;lt;/code&amp;gt;, …). Es ist nur das Modell – keine Business-Logik.&lt;br /&gt;
&lt;br /&gt;
== Namespace ==&lt;br /&gt;
&lt;br /&gt;
MediaWiki organisiert Seiten über feste, nummerierte Namespaces (&amp;lt;code&amp;gt;page_namespace&amp;lt;/code&amp;gt; in der DB).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub enum Namespace {&lt;br /&gt;
    Media = -2,&lt;br /&gt;
    Special = -1,&lt;br /&gt;
    Main = 0,&lt;br /&gt;
    Talk = 1,&lt;br /&gt;
    User = 2,&lt;br /&gt;
    UserTalk = 3,&lt;br /&gt;
    Project = 4,&lt;br /&gt;
    ProjectTalk = 5,&lt;br /&gt;
    File = 6,&lt;br /&gt;
    FileTalk = 7,&lt;br /&gt;
    MediaWiki = 8,&lt;br /&gt;
    MediaWikiTalk = 9,&lt;br /&gt;
    Template = 10,&lt;br /&gt;
    TemplateTalk = 11,&lt;br /&gt;
    Help = 12,&lt;br /&gt;
    HelpTalk = 13,&lt;br /&gt;
    Category = 14,&lt;br /&gt;
    CategoryTalk = 15,&lt;br /&gt;
    Custom(i32),&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Page ==&lt;br /&gt;
&lt;br /&gt;
Entspricht der &amp;lt;code&amp;gt;page&amp;lt;/code&amp;gt;-Tabelle. Hält keinen Inhalt, sondern verweist auf die aktuellste Revision.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
use chrono::{DateTime, Utc};&lt;br /&gt;
&lt;br /&gt;
pub type PageId = u64;&lt;br /&gt;
pub type RevisionId = u64;&lt;br /&gt;
pub type UserId = u64;&lt;br /&gt;
pub type TextId = u64;&lt;br /&gt;
&lt;br /&gt;
pub struct Page {&lt;br /&gt;
    pub page_id: PageId,&lt;br /&gt;
    pub namespace: Namespace,&lt;br /&gt;
    pub title: String,&lt;br /&gt;
    pub is_redirect: bool,&lt;br /&gt;
    pub is_new: bool,&lt;br /&gt;
    pub latest: RevisionId,&lt;br /&gt;
    pub len: u64,&lt;br /&gt;
    pub content_model: ContentModel,&lt;br /&gt;
    pub touched: DateTime&amp;lt;Utc&amp;gt;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pub enum ContentModel {&lt;br /&gt;
    Wikitext,&lt;br /&gt;
    JsonContent,&lt;br /&gt;
    JavaScript,&lt;br /&gt;
    Css,&lt;br /&gt;
    Text,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Revision ==&lt;br /&gt;
&lt;br /&gt;
Entspricht der &amp;lt;code&amp;gt;revision&amp;lt;/code&amp;gt;-Tabelle. Jede Bearbeitung erzeugt eine neue, unveränderliche Revision; der eigentliche Text liegt separat in &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;slot&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub struct Revision {&lt;br /&gt;
    pub rev_id: RevisionId,&lt;br /&gt;
    pub page_id: PageId,&lt;br /&gt;
    pub parent_id: Option&amp;lt;RevisionId&amp;gt;,&lt;br /&gt;
    pub text_id: TextId,&lt;br /&gt;
    pub user: RevisionUser,&lt;br /&gt;
    pub comment: Option&amp;lt;String&amp;gt;,&lt;br /&gt;
    pub timestamp: DateTime&amp;lt;Utc&amp;gt;,&lt;br /&gt;
    pub minor_edit: bool,&lt;br /&gt;
    pub sha1: String,&lt;br /&gt;
    pub len: u64,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
// Angemeldeter User oder anonyme Bearbeitung per IP (wie in MediaWiki üblich).&lt;br /&gt;
pub enum RevisionUser {&lt;br /&gt;
    Registered(UserId),&lt;br /&gt;
    Anonymous { ip: String },&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Text (Content) ==&lt;br /&gt;
&lt;br /&gt;
Entspricht der &amp;lt;code&amp;gt;text&amp;lt;/code&amp;gt;-Tabelle bzw. modernem &amp;lt;code&amp;gt;content&amp;lt;/code&amp;gt;/&amp;lt;code&amp;gt;slots&amp;lt;/code&amp;gt;-Schema.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub struct Text {&lt;br /&gt;
    pub old_id: TextId,&lt;br /&gt;
    pub content: String,&lt;br /&gt;
    pub flags: Vec&amp;lt;TextFlag&amp;gt;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pub enum TextFlag {&lt;br /&gt;
    Gzip,&lt;br /&gt;
    Utf8,&lt;br /&gt;
    External,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== User ==&lt;br /&gt;
&lt;br /&gt;
Entspricht der &amp;lt;code&amp;gt;user&amp;lt;/code&amp;gt;-Tabelle.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub struct User {&lt;br /&gt;
    pub user_id: UserId,&lt;br /&gt;
    pub name: String,&lt;br /&gt;
    pub real_name: Option&amp;lt;String&amp;gt;,&lt;br /&gt;
    pub email: Option&amp;lt;String&amp;gt;,&lt;br /&gt;
    pub registration: DateTime&amp;lt;Utc&amp;gt;,&lt;br /&gt;
    pub edit_count: u64,&lt;br /&gt;
    pub groups: Vec&amp;lt;UserGroup&amp;gt;,&lt;br /&gt;
    pub blocked: Option&amp;lt;Block&amp;gt;,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pub enum UserGroup {&lt;br /&gt;
    User,&lt;br /&gt;
    Autoconfirmed,&lt;br /&gt;
    Bot,&lt;br /&gt;
    Sysop,&lt;br /&gt;
    Bureaucrat,&lt;br /&gt;
    Custom(String),&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pub struct Block {&lt;br /&gt;
    pub reason: String,&lt;br /&gt;
    pub expiry: Option&amp;lt;DateTime&amp;lt;Utc&amp;gt;&amp;gt;,&lt;br /&gt;
    pub blocked_by: UserId,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Category ==&lt;br /&gt;
&lt;br /&gt;
Entspricht &amp;lt;code&amp;gt;category&amp;lt;/code&amp;gt; + &amp;lt;code&amp;gt;categorylinks&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub struct Category {&lt;br /&gt;
    pub name: String,&lt;br /&gt;
    pub page_count: u64,&lt;br /&gt;
    pub subcat_count: u64,&lt;br /&gt;
    pub file_count: u64,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pub struct CategoryLink {&lt;br /&gt;
    pub page_id: PageId,&lt;br /&gt;
    pub category: String,&lt;br /&gt;
    pub sort_key: String,&lt;br /&gt;
    pub kind: CategoryLinkType,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pub enum CategoryLinkType {&lt;br /&gt;
    Page,&lt;br /&gt;
    Subcat,&lt;br /&gt;
    File,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links (interne Verlinkung) ==&lt;br /&gt;
&lt;br /&gt;
Entspricht den Link-Tabellen &amp;lt;code&amp;gt;pagelinks&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;templatelinks&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;imagelinks&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;externallinks&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;langlinks&amp;lt;/code&amp;gt;, &amp;lt;code&amp;gt;redirect&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub struct PageLink {&lt;br /&gt;
    pub from: PageId,&lt;br /&gt;
    pub to_namespace: Namespace,&lt;br /&gt;
    pub to_title: String,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pub struct TemplateLink {&lt;br /&gt;
    pub from: PageId,&lt;br /&gt;
    pub template_namespace: Namespace,&lt;br /&gt;
    pub template_title: String,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pub struct ImageLink {&lt;br /&gt;
    pub from: PageId,&lt;br /&gt;
    pub file_name: String,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pub struct ExternalLink {&lt;br /&gt;
    pub from: PageId,&lt;br /&gt;
    pub url: String,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pub struct LangLink {&lt;br /&gt;
    pub from: PageId,&lt;br /&gt;
    pub lang: String,&lt;br /&gt;
    pub title: String,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pub struct Redirect {&lt;br /&gt;
    pub from: PageId,&lt;br /&gt;
    pub to_namespace: Namespace,&lt;br /&gt;
    pub to_title: String,&lt;br /&gt;
    pub fragment: Option&amp;lt;String&amp;gt;,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== RecentChanges ==&lt;br /&gt;
&lt;br /&gt;
Entspricht &amp;lt;code&amp;gt;recentchanges&amp;lt;/code&amp;gt; – Ereignis-Log für Edits, Neuanlagen, Log-Aktionen.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub struct RecentChange {&lt;br /&gt;
    pub rc_id: u64,&lt;br /&gt;
    pub timestamp: DateTime&amp;lt;Utc&amp;gt;,&lt;br /&gt;
    pub page_id: PageId,&lt;br /&gt;
    pub rev_id: Option&amp;lt;RevisionId&amp;gt;,&lt;br /&gt;
    pub user: RevisionUser,&lt;br /&gt;
    pub kind: RecentChangeType,&lt;br /&gt;
    pub comment: Option&amp;lt;String&amp;gt;,&lt;br /&gt;
    pub bot: bool,&lt;br /&gt;
    pub patrolled: bool,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pub enum RecentChangeType {&lt;br /&gt;
    Edit,&lt;br /&gt;
    New,&lt;br /&gt;
    Log(LogAction),&lt;br /&gt;
    Categorize,&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
pub enum LogAction {&lt;br /&gt;
    Delete,&lt;br /&gt;
    Move,&lt;br /&gt;
    Block,&lt;br /&gt;
    Protect,&lt;br /&gt;
    Upload,&lt;br /&gt;
    Merge,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Watchlist ==&lt;br /&gt;
&lt;br /&gt;
Entspricht &amp;lt;code&amp;gt;watchlist&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
pub struct WatchlistEntry {&lt;br /&gt;
    pub user_id: UserId,&lt;br /&gt;
    pub namespace: Namespace,&lt;br /&gt;
    pub title: String,&lt;br /&gt;
    pub notification_timestamp: Option&amp;lt;DateTime&amp;lt;Utc&amp;gt;&amp;gt;,&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beziehungen (Übersicht) ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
User ──authors──▶ Revision ──belongs to──▶ Page ──in──▶ Namespace&lt;br /&gt;
  │                    │                       │&lt;br /&gt;
  │                    └──points to──▶ Text     ├──has many──▶ CategoryLink ──▶ Category&lt;br /&gt;
  │                                              ├──has many──▶ PageLink / TemplateLink / ImageLink&lt;br /&gt;
  └──has──▶ WatchlistEntry                       ├──may be──▶ Redirect&lt;br /&gt;
                                                  └──generates──▶ RecentChange&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Rust]]&lt;br /&gt;
[[Category:MediaWiki]]&lt;br /&gt;
[[Category:Datenmodell]]&lt;/div&gt;</summary>
		<author><name>Thorsten</name></author>
	</entry>
</feed>