Datenbankdesign kennen lernen

Dieser Artikel soll Einsteigern einen kleinen Einstieg ins Datenbankdesign vermitteln.

Das Datenbankdesign von OXID eShop ist sehr logisch aufgebaut.

 

Model = Datenbanktabelle

Ein Model besitzt in der Regel eine dazugehörige Datenbanktabelle. Beispiel die Datenbanktabelle oxarticles wird dem Model /application/models/oxarticle.php zugeordnet.

Verknüpfungstabellen

Zusätzlich gibt es eine Vielzahl von Verknüpfungstabellen. Die Verknüpfungstabellen enthalten meist eine “2” innerhalb ihres Datenbanktabellennamens z.B. oxobject2category.

Meist genutzten Tabellenspalten

Tabellenspaltennamen Bedeutung
OXID Eindeutige ID
OXPARENTID ID des Vaterartikels
OXSHOPID ID des Shops, interessant ab EE Shops mit Subshops
OXOBJECTID Verknüpfungstabellen, verknüpfte ID
OXACTIVE Aktiv ja/nein
OXACTIVEFROM Aktivierungszeitpunkt ab
OXACTIVETO Aktivierungszeitpunkt bis
OXTITLE Titel
OXSORT Sortierung für die Reihenfolge
OXTIMESTAMP Aktualisierungszeitpunkt des Datensatzes

Datenbank Views

Datenbank Views werden innerhalb OXID eShops verwendet um z.B. unterschiedliche Sprachen abzubilden.

VIEWs sind Abfragen, die in der Datenbank als Objekt fest gespeichert sind. Sie können als virtuelle Tabellen verstanden werden, deren Inhalt und Struktur auf anderen Tabellen oder Views basieren, und können in (fast) jedem SELECT-Befehl anstelle einer „echten“ Tabelle verwendet werden.

Quelle: Wikibooks – Erstellen von Views

Datenverarbeitung

Die Datenverarbeitung läuft über das jeweilige Model der Datenbanktabelle.

Zum Auslesen der Daten instanziiert man die Modelklasse über das OXID Framework und lädt über die OXID den Datensatz in der Datenbanktabelle.

Beispiel: Artikel laden

Beispiel: Daten ausgeben

Beispiel: Neuen Datensatz speichern

Beispiel: Datensatz aktualisieren

Quelle: Tutorials/Getting, updating and storing database data

Dokumentation

Da sich die Datenbankstruktur auch im Laufe der Zeit von Version zu Version verändert lohnt ein Blick in die Datenbankstruktur Dokumentation des Wikis unter Documentation -> DB documentation.


0 Antworten

Hinterlassen Sie einen Kommentar

Wollen Sie an der Diskussion teilnehmen?
Feel free to contribute!

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *