Tach!
[... Revision-Referenz ...] ist da wohl korrekter, obwohl möglicherweise dasselbe dabei rauskommt.
Eine Page kann mehrere Revisions haben, weswegen in der Revision auf die ID der Page verwiesen wird, zu der sie gehört. Aber nur eine Revision ist die aktuelle, weswegen in der Page ein Verweis auf eine Revision existiert. In der Offline-Datenbank ist aber nur die aktuelle Revision enthalten, weswegen aus der 1:n-Beziehung eine 1:1 wurde. Und es ist im Prinzip auch egal, über welchen der beiden Wege du die Beziehung herstellst. Aber wenn es darum geht, den Online-Datenbestand (für eine neue Offline-Version) zu befragen, muss man schon den Weg über die "latest Revision" gehen.
Aber so richtig steige ich noch nicht durchs DB Design, insbesondere was die Kategorien (table category) einschl. deren ref. Integrität betrifft.
Das ist nur eine Liste der Kategorien. Die Beziehungen zu Pages oder übergeordneten Categorien ist in categorylinks zu finden. Dazu muss der cl_type beachtet werden, auf welche Sorte Ziel sich das cl_from bezieht.
In Fakt sind die Inhalte mit dem title like "%.html" komplette Beispiele von <doctype> bis </html>.
Beispiele sind im Namensraum "Beispiel" zu finden. Die Seitennamen dort haben eine typspezifische Endung, damit der Content-Type daraus abgeleitet und entsprechend gesetzt werden kann. Beispiele werden über eine selbstgeschriebene Extension behandelt und gehen nicht den üblichen Mediawiki-Weg.
Mein Ziel ist eine BinärDatei die mit JS lesbar ist.
JSON ist auch mit Javascript lesbar und man kann sich jeden beliebigen JSON- oder Text-Editor nehmen, um es gegebenenfalls zu bearbeiten. Ein proprietäres Binärformat hingegen benötigt ein Spezialwerkzeug und das Wissen um die Spezifikation dieses Formats. Das würde ich wegen schlechter Wartbarkeit ablehnen.
Das Problem ist also nicht
dass aus Seitentiteln wie beispielweise "HTML/Tutorials" oder "Kategorie:HTML" irgendwie ein Dateiname erstellt werden muss
Ach, nicht? Was soll denn da am Ende rauskommen? Eine Art SPA, die sich aus einem Binärdatengrab bedient? Also quasi ein Webserver?
sondern wie ich Kategorie-Seiten und #Weiterleitungsseiten beim Extrahieren des Content rausfiltern kann.
Die Kategorien werden in den beiden erwähnten Tabellen verwaltet. Jede Kategorie hat (genauer: kann haben) außerdem eine Page, die sich im Namensraum für die Kategorien befindet.
dedlfix.