Struktur der Datenbank

Entwicklerdokumentation

Struktur der Datenbank

Die Datenbank in Stud.IP umfasst etwa 100 Tabellen, wobei etliche Tabellen zum Beispiel von Plugins noch hinzukommen können. Dies hier ist ein kleiner und viel zu später Versuch, diese Tabellen zu dokumentieren.

Es gibt einige Dinge, die in den Tabellen stehen, die sich niemals einem Programmierer erschließen würden, wenn er einfach nur in den Quelltext schauen würde. Es geht bei der Dokumentation nicht darum, den Blick in den PhpMyAdmin zu ersetzen. Deswegen ist die Dokumentation auch nicht vollständig und macht sich über genauste Typangaben nicht so viele Gedanken. Stattdessen sollen Felder erklärt werden wie seminare.duration_time, in denen Zahlen von -1 bis Unendlich drin stehen, die aber alle etwas anderes bedeuten können.

Grundkonventionen

Primärschlüssel: In den Tabellen von Entitäten wie seminare oder Institute werden als Primärschlüssel sehr häufig md5-Hashes verwendet. Das hat den historischen Hintergrund, dass man IDs auf die Weise fast gar nicht erraten kann. Numerische IDs kann man sehr gut erraten. Natürlich ist dies ein minderwertiger Schutz vor Hackerangriffen auf geschützte Daten. Deswegen werden in Stud.IP die Daten mittlerweile anders geschützt. Aber wenn Primärschlüssel einmal gesetzt sind, kann man sie nur sehr schlecht wieder in numerische IDs umwandeln. Deswegen ist es stets bei den md5-Hashes geblieben mit Ausnahme von einigen neueren Tabellen.

Zeitstempel: Stud.IP verwendet ausschließlich (falls es doch eine Ausnahme geben sollte, bestätigt sie die Regel) Integer-Werte als Unix-Timestamps, also die Anzahl der Sekunden seit dem 1.1.1970. Die meisten Tabellen haben zwei Felder mkdate und chdate, die man immer ausfüllen sollte. mkdate ist der Zeitpunkt des Erstellens des Datensatzes und chdate ist der Zeitpunkt des letzten Änders des Datensatzes.

Letzte Änderung am November 03, 2011, at 11:47 AM von Krassmus.