Support+49-5382-5892107von Montag bis Freitag 10:00 bis 16:00 Uhrvon Mo bis Fr 10:00 bis 16:00 Uhr

Datenbankdesign

Bild von mcmurryjulie auf Pixabay
 

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

TabellenspaltennamenBedeutung
OXIDEindeutige ID
OXPARENTIDID des Vaterartikels
OXSHOPIDID des Shops, interessant ab EE Shops mit Subshops
OXOBJECTIDVerknüpfungstabellen, verknüpfte ID
OXACTIVEAktiv ja/nein
OXACTIVEFROMAktivierungszeitpunkt ab
OXACTIVETOAktivierungszeitpunkt bis
OXTITLETitel
OXSORTSortierung für die Reihenfolge
OXTIMESTAMPAktualisierungszeitpunkt 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

$product = oxNew( 'oxarticle' ); // creating model's object
$product->load( 'demoId' ); // loading data

Beispiel: Daten ausgeben

//getting some informations
echo $product->oxarticles__oxtitle->value;
echo $product->oxarticles__oxshortdesc->value;

Beispiel: Neuen Datensatz speichern

$product = oxNew( 'oxarticle' );
$product->oxarticles__oxtitle = new oxField ( 'productTitle' );
$product->oxarticles__oxshortdesc = new oxField( 'shortdescription' );
$product->save();

Beispiel: Datensatz aktualisieren

$product = oxNew( 'oxarticle' );
$product->load( 'demoId' );
$product->oxarticles__oxtitle = new oxField ( 'productTitle' );
$product->oxarticles__oxshortdesc = new oxField( 'shortdescription' );
$product->save();

$product = oxNew( 'oxarticle' );
$product->setId( 'demoId' );
$product->oxarticles__oxtitle = new oxField ( 'productTitle' );
$product->oxarticles__oxshortdesc = new oxField( 'shortdescription' );
$product->save();

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.