1. Für jede Tabelle in der Datenbank muss gelten: 1.1. Ihr Name muss nach folgender Struktur aufgebaut sein: flip__ Beispiel: flip_calender_events. Namen der Struktur flip_ sind zu vermeiden, Weil diese Tabelle umbenannt werden müsste, sobald das Paket eine Zweite erhalten soll. 1.2. Sie benötigt eine Spalte Namens `id` vom typ 'int', welche auf auto_increment gesetzt ist. Die Werte dieser Spalte dürfen nirgends geschrieben werden, sonder MySQL vergibt sie automatisch, sobald ein neuer Datensatz erstellt wird. 1.3. Sie benötigen eine Spalte Namens `mtime` (modified-time) vom Typ 'timestamp'. Auch diese Werte sollten nirgends manuell geschrieben werden, da MySQL sie automatisch updated, sobald der Datensatz bearbeitet wird. `mtime` muss die erste Spalte vom Typ timestamp sein, da MySQL sie sonst nicht korrekt updated. die MySQL-Funktion UNIX_TIMESTAMP(date) kann aus dem wert der Spalte einen Timestamp machen. 1.4. Die Namen der anderen Spalten müssen komplett klein geschrieben sein und dabei so kurz wie möglich, ohne dass ihr intuitiver Sinn verloren geht. Auch eine anderer Programmierer soll beim Anblick der Tabellenstruktur sofort wissen, welche Daten in welcher Spalte stehen! Eine Spalte, welche Referenzen auf eine andere Tabelle enthält, muss mit dem Postfix "_id" enden. Beispiel: user_id. 2. Zugriff auf Daten: Hier gilt grundsätzlich: - Aus dem Code wird nur über Namen auf Datensätze zugegriffen. - Die Datenbank referenziert ihre Daten über ihre IDs. - der User bekommt nur die Namen der Datensätze zu Gesicht. Die IDs von Datensätzen als Konstanten sind im Code absolut verboten! Auf einen anderen Datensatz mit einem Namen zu referenzieren, obwohl es auch über eine ID möglich gewesen wäre, ist genauso verboten. Als Beispiel eignen sich hier die Rechte sehr gut: Aus dem Code und vom User werden sie nur über ihren Namen angesprochen und in der Datenbank nur als ID gespeichert. (An dieser Stelle besteht noch Aufräumbedarf, da einige Rechte noch immer als String in der Datenbank referenziert werden) 3. Datenbankänderungen: Bei Änderungen an der Datenbank (Inhalt und Struktur)... - ist die flip.sql entsprechend anzupassen (siehe db/readme.txt) - die mod.dbupdate.php entsprechend anzupassen - ggf. in core.php die REQUIRED_DB_VERSION anzupassen 4. Sonstiges: Wie die Daten in den Tabellen bei Ex- und Importen mittels tools/sql-file/-Skripten verwendet werden sollen, gibt die Datei "tools/sql-file/make-sql-file.tables.php" an: Als Testdaten, Systemdaten oder gelöschte Daten. Beim Erstellen bzw. Löschen von Tabellen ist diese Datei zu pflegen!