Allgemeine Konventionen für zukünftige Datenbankstrukturen

Wenn Sie ein neues Plugin oder eine Funktion starten, die Änderungen an der Datenbank erfordert, und obwohl Sie die meisten dieser Informationen in den Codierungskonventionen finden (nächster Abschnitt), beachten Sie bitte die folgenden Regeln:

  • Alle Tabellen MÜSSEN eine eindeutige Kennung haben, die auf einer einzelnen Spalte basiert. Wenn die Tabelle bereits ein id enthält, das von einer c_id -Spalte abhängig ist, MUSS die neue Spalte den Namen iid

  • Alle Tabellen, die sich auf Kurse beziehen, MÜSSEN die ganzzahlige ID des Kurses verwenden und die entsprechende Spalte aufrufen c_id

  • Alle Tabellen, die sich auf Sitzungen beziehen, MÜSSEN die ganzzahlige ID der Sitzung verwenden und die entsprechende Spalte session_id (und NICHT id_session) aufrufen

  • Alle Tabellen, die die Beziehung zwischen anderen Tabellen darstellen (nämlich eine n-m- oder 1-n-Beziehung), SOLLTEN einen Namen mit einem zentralen « rel » -Begriff tragen, in dem die beiden Tabellennamen in alphabetischer Reihenfolge ausgedrückt werden, es sei denn, dies ist kontraintuitiv. Zum Beispiel trägt das Verknüpfen von Benutzern mit Kursen den Tabellennamen course_rel_user.

  • Wenn Sie speziell einen Tabellenindex definieren, um die Dinge zu beschleunigen, SOLLTE dieser Index der Reihenfolge der Felder folgen, die in den entsprechenden Abfragen verwendet werden. Beispielsweise sollte für eine Tabelle, die mindestens die drei Felder user_id, c_id und session_id enthält, ein Index für diese drei Felder auf den Abfragen basieren, die an diese Tabelle gestellt werden. Wenn eine Abfrage wie folgt funktioniert: SELECT id FROM table WHERE c_id = 3 AND user_id = 872 AND session_id = 32 dann sollte der Index in dieser Reihenfolge erstellt werden: ALTER TABLE table ADD INDEX idx_tcus (c_id, user_id, session_id)

  • Übersetzungen von Begriffen werden außerhalb der Datenbank verwaltet. Alle Tabellen-, Spalten- und Indexnamen MÜSSEN in ENGLISCHER SPRACHE KORREKT geschrieben sein, um die Verständlichkeit anderer Entwickler auf der ganzen Welt zu verbessern.

Last updated