Entwickler-Ecke

Off Topic - Wie funktioniert ein Wiki


digi_c - Mi 15.03.06 14:19
Titel: Wie funktioniert ein Wiki
Moin moin,

ich frage mich schon eine ganze Weile, wie eigentlich Wikipedia "von hinten" aussieht also wie es DB mäßig organisert wird. Wie kann man effizient so unterschiedlich lange Texte speichern die eftl. auch noch strukturiert sind?

Weiß einer von euch wie die das angestellt haben?


Moderiert von user profile iconChristian S.: Topic aus Datenbanken verschoben am Mi 15.03.2006 um 15:55


Lannes - Mi 15.03.06 14:35

Hallo,

da gibt es Infos: http://de.wikipedia.org/wiki/Wikipedia#Technik


digi_c - Mi 15.03.06 16:31

Danke aber ich meinte eher die Tabellen Strukturen. Wird das alle sin Memos gespeichert? Da wäre doch jede Menge Overhead dabei, oder?


Tigu - Mi 15.03.06 16:35

Ich bin mir zwar nicht sicher, aber ist wikipedia nicht, zumindestens Teilweise, mit HTML programmiert? Dann wäre das mit den Tabellen ja gar kein Problem und könnte auch ganz ordentlich gespeichert werden.


Fighter#1 - Mi 15.03.06 16:45

Wahrscheinlich über eine MySql Datenbank die sich ja mit PHP wunderbar einbinden lässt.
Oder nur ne Suchfunktion die den Wikipediaserver nach einem passenden Ordner durchsucht und sonst wird es in einer Datenbank zu jedem Ordner Schlüsselwörter geben die es ermöglichen das einm Ergebnis angezeigt wird auch wenn es keinen Ordner zum Thema gibt


F34r0fTh3D4rk - Mi 15.03.06 16:46

Memo ? Programmieren mit HTML ?

Mit HTML Programmieren ist schonmal schlecht, ich glaube das ist einfach ne SQL Datenbank und weiter nichts.


Fighter#1 - Mi 15.03.06 16:48

wie gesagt Wikipedia nimmt nicht datenbankeinträge sondern es gibt für alles einen Ordner mit merheren HTML dateien,
@F34r0fTh3D4rk Eine SQL Datenbank kann auch HTML Code beinhalten
falls du das Programmieren meintest hast du das was
HTML angeht recht


Christian S. - Mi 15.03.06 16:55

user profile iconFighter#1 hat folgendes geschrieben:
wie gesagt Wikipedia nimmt nicht datenbankeinträge sondern es gibt für alles einen Ordner mit merheren HTML dateien,
Das ist falsch. Die Speicherung der Artikel als HTML-Dateien wäre wohl der Tod für jede Suchfunktion ;-)

Wie man hier [http://www.mediawiki.org/wiki/How_does_MediaWiki_work%3F] nachlesen kann, greift die MediaWiki-Software auf eine MySQL-Datenbank zurück.


F34r0fTh3D4rk - Mi 15.03.06 17:10

"SELECT * FROM wiki WHERE title LIKE ".$suchwort

wäre ne einfache abfrage form, wobei das noch weitaus optimierter ist


Fighter#1 - Mi 15.03.06 17:12

user profile iconChristian S. hat folgendes geschrieben:
user profile iconFighter#1 hat folgendes geschrieben:
wie gesagt Wikipedia nimmt nicht datenbankeinträge sondern es gibt für alles einen Ordner mit merheren HTML dateien,
Das ist falsch. Die Speicherung der Artikel als HTML-Dateien wäre wohl der Tod für jede Suchfunktion ;-)

Wie man hier [http://www.mediawiki.org/wiki/How_does_MediaWiki_work%3F] nachlesen kann, greift die MediaWiki-Software auf eine MySQL-Datenbank zurück.

Wie man unschwer aus der Headerzeile des Browsers entnehmen kann handelt es sich meiner ansicht nach nicht um eine php datei, die Suche vll. Aber ich denke die MYSQL datenbank verlinkt nur zu den HTML dateien.


Christian S. - Mi 15.03.06 17:13

Und Du denkst, dieser Thread ist eine HTML-Datei, weil Du ihn über diesen Link aufrufen kannst?
http://www.delphi-forum.de/topic_Wie+funktioniert+ein+Wiki_57440.html

Oder ist er doch in der Datenbank?
http://www.delphi-forum.de/viewtopic.php?t=57440


Grendel - Mi 15.03.06 17:19

user profile iconFighter#1 hat folgendes geschrieben:
Wie man unschwer aus der Headerzeile des Browsers entnehmen kann handelt es sich meiner ansicht nach nicht um eine php datei, die Suche vll. Aber ich denke die MYSQL datenbank verlinkt nur zu den HTML dateien.

Wunder der Technik!
Das ganze wird per mod_rewrite geregelt. http://httpd.apache.org/docs/2.2/misc/rewriteguide.html

MediaWiki ist definitiv in php geschrieben und legt seine Daten in einer MySQL-DB ab. Aber guckt euch doch einfach den Code an; Dafür ist es ja schließlich freie Software.

Bis neulich ...


digi_c - Mi 15.03.06 17:48

Ja gut *ähh* ihr seht schon, darüber kann man vortrefflich debattieren ;)

Also eine DB nun gut aber wie fasst man lange Beiträge in eine DB?
MEMO Felder: Ja aber die haben eine feste Größe-> unbenötigter Platz verschwendet und Größe eingeschränkt
BLOB Felder: Die sind doch nicht durchsuchbar?

Was nun sprach Zeus :nut:


Stefan.Buchholtz - Mi 15.03.06 17:57

user profile icondigi_c hat folgendes geschrieben:
Also eine DB nun gut aber wie fasst man lange Beiträge in eine DB?
MEMO Felder: Ja aber die haben eine feste Größe-> unbenötigter Platz verschwendet und Größe eingeschränkt
BLOB Felder: Die sind doch nicht durchsuchbar?

Was nun sprach Zeus :nut:


MySQL hat einen TEXT-Datentyp, der Strings beliebiger Länge enthalten kann und Volltext-Suche in sochen Feldern über einen speziellen Index.

Stefan


matze.de - Mi 15.03.06 19:06

Och es gibt so viele Möglichkeiten.. guckt euch einfach mal die Struktur von der Mysql-DB eines Mediawikis an, dann versteht ihr auch wie sie die Daten speichern...

mfg matze


blackbirdXXX - Mi 15.03.06 20:12

Hier ist ein 10KB großes Wiki auf flat file basis: http://trac.pocoo.org/browser/colubrid/trunk/examples/wiki/wiki.py

Vielleicht macht das einiges klarer :)
Und wie die Daten selber dann in der DB/Filesystem liegen ist dann nur noch eine Sache der Performance.

Grendel hat folgendes geschrieben:
Wunder der Technik!
Das ganze wird per mod_rewrite geregelt.


Das geht auch ohne mod_rewrite


DaRkFiRe - Mi 15.03.06 21:47

Wie Grender das schon geschrieben hat:
Das passiert, wenn PHP im Apache als Modul läuft, dass direkt eingebunden ist (DLL) und nicht via CGI behandelt wird (Apache startet PHP mit Parametern und liest den Rückgabewert).

MediaWiki (also das von wikipedia.org) ist definitiv mit PHP und MySQL geschrieben - hab das schon installiert und aufgesetzt.

Statisches HTML (also als Datei) wird wenn dann überhaupt nur zum Caching genutzt. Selbst wenn, dann ist es allerdings aus dem Apache 2.0/PHP-Modus, den Wiki vorrangig nutzt, nicht ersichtlich.

P.S.: in HTML kann nicht programmiert werden - HTML ist keine Programmiersprache, sondern nur eine Auszeichnungssprache, musste mich diesbzgl. auch schon belehren lassen.
Bei Programmierung hat man Variablen, Funktionen, Zuweisungen und Konstanten.