Entwickler.HowToDatenbank History

Hide minor edits - Show changes to markup

 
 
April 01, 2011, at 10:57 PM by tthelen -
Changed line 1 from:

(:redirect 'http://docs.studip.de/develop/Entwickler/HotToDatenbank':)

to:

(:redirect 'http://docs.studip.de/develop/Entwickler/HowToDatenbank':)

 
 
April 01, 2011, at 10:57 PM by tthelen -
Changed line 1 from:

(:redirect 'http://docs.studip.de/develop/Entwickler/Entwicklungs-HOWTO':)

to:

(:redirect 'http://docs.studip.de/develop/Entwickler/HotToDatenbank':)

 
 
April 01, 2011, at 10:52 PM by tthelen -
Added lines 1-2:

(:redirect 'http://docs.studip.de/develop/Entwickler/Entwicklungs-HOWTO':)

 
 
August 10, 2009, at 05:30 PM by Krassmus -
Added lines 3-45:

Struktur der Datenbank

Die Datenbank von Stud.IP ist mit seinen über 100 generisch gewachsenen Tabellen recht umfangreich. Leider gibt es durch den langen Wachstumsprozess viele Redundanzen und (schlimmer noch!) sogar einige kleinere Inkonsistenzen.

Die wichtigsten Tabellen bilden das Dreigespann aus auth_user_md5, seminare und Institute. Und ja, Institute schreibt man groß!

Jedem Nutzer am nächsten dürfte die auth_user_md5 sein, in der die wichtigsten relevanten Daten über einen Nutzer drin stehen. Im System von Stud.IP wird jeder Nutzer über eine UserID identifiziert und nicht über seinen username, damit sich der username nochmal ändern kann. In der auth_user_md5 steht konkret:

auth_user_md5

user_id: Eine eindeutige Identifikationsnummer

username: Die Anmeldekennung

password: Das mittels MD5-Hash verschlüsselte Passwort. Das bedeutet, dass selbst ein Systemadmin nicht das Passwort aus der Datenbank auslesen könnte.

perms: Globale Nutzerrechte. In Stud.IP hat ein Nutzer globale Rechte, damit zum Beispiel klar ist, dass er als 'dozent' Veranstaltungen anlegen kann. Zusätzlich gibt es auch ein lokales Rechtesystem, das hiermit aber kaum was zu tun hat. Grundsätzlich sollte jeder Nutzer von Stud.IP nirgendwo im System lokal mehr Rechte haben als global. Email und weitere Daten, die nicht so wichtig sind. In der Tabelle user_info stehen überdies zu jedem Nutzer weitere Infos, die aber mehr direkt mit der Homepage zu tun haben wie 'lebenslauf' oder 'hobby'.

seminare

Die Tabelle 'seminare' ist für alle Veranstaltungen zuständig, egal ob es nun das Kulturforum ist, "Spätwerke Schillers und ihre Folgen auf die Gesellschaft" oder eine studentische Arbeitsgruppe.

Seminar_id: Ja, auch groß geschrieben. Hierrüber wird die Veranstaltung eindeutig identifiziert.

Name: Ebenfalls groß geschrieben - der Name der Veranstaltung

Institut_id: Dies identifiziert die Heimateinrichtung einer Veranstaltung. Dies ist in der Regel eine Veranstaltung, in der der Gründer Dozentenrechte hat (also als lokale permissions 'dozent' gesetzt ist.

start_time: Der Unix-Timestamp Wert des Anfangs des Semesters, ab dem die Veranstaltung anfangen soll.

duration_time: 0, falls die Veranstaltung ein Semester lang gehen soll (Normalzustand). -1, wenn sie unendliche Dauer hat und ansonsten ist dies eine Integer-Zahl, sodass start_time + duration_time gleich der Zeitpunkt des Anfangs des ersten Semesters ist, ab dem die Veranstaltung nicht mehr aktuell ist. Also wäre die letzte Sekunde, die die Veranstaltung dauert start_time + duration_time -1. Das sieht komisch aus, hat aber seinen Sinn, wenn man start_time einer Veranstaltung mit der end_time einer anderen Veranstaltung vergleichen wollen würde.

Nutzer werden einer Veranstaltung über die seminar_user eingetragen. In dieser Tabelle steht zum Beispiel auch im Feld status, welche Rechte der Nutzer lokal in der Veranstaltung hat.

Institute

Die dritte wichtige Tabelle, die relativ schnell erklärt ist: Dies sind die Einrichtungen/Institute/Fakultäten in Stud.IP. Jeder Nutzer ist über die Tabelle user_inst einer oder mehreren Einrichtungen zugeteilt und jede Veranstaltung über die seminar_inst ebenso. In der user_inst stehen zudem im Feld inst_perms die Rechte des jeweiligen Nutzers.

Deleted line 47:
  • Die wichtigsten Tabellen
 
 
March 26, 2009, at 02:30 PM by follerma -
Deleted line 0:
Added line 3:
  • Hinweis auf komplette DB-Dokumentation
 
 
March 26, 2009, at 02:27 PM by follerma -
Added lines 1-3:
  • Die wichtigsten Tabellen
  • Umgang mit/Bedeutung von range_ids

 

 

Source: Basis-Wiki-Hilfe | Last change: April 01, 2011, at 10:57 PM, tthelen | Local view: Basis-Hilfe