3. Zend Tutorial

Im ersten und zweiten Tutorial haben wir die Grundlagen geschaffen, nun will ich mit der Planung bzw. Architektur zu der Beispiel-Anwendung beginnen. Ich habe mir eine Turnier-Verwaltung ausgedacht, da man sich darin gleich reindenken kann und die Anforderungen zu Beginn nicht zu hoch sind. Also was brauchen wir auf Datenbank-Ebene? Eine Tabelle für die Mannschaften und eine für die Turniere. Außerdem möchte ich die Mannschaften einer Gruppe zuordnen können (Gruppierung). Somit sieht das erste Datenbank-Diagramm folgendermaßen aus:

Erstes Datenbankschema der Beispielanwendung

Erstes Datenbankschema der Beispielanwendung

Zur Tabelle Competition: Auch ein Turnier hat einen Namen und ein geplanten Startermin. Für das Turnier wird auch festgelegt, wie lange ein Spiel gehen soll (single_duration) und wieviele Sätze pro Spiel gemacht werden (number_of_sets). Das wären z. B. beim Volleyball die einzelnen Sätze eines Spiels.

Zur Tabelle Team: Ein Team besteht aus einem Namen und muß am Tag des Turniers auch da sein (available). Außerdem muß vorher eine Gebühr bezahlt werden (fee_paid). Diese zwei Spalten speichern lediglich Bool-Werte ab.

Zur Tabelle Group: Eine Gruppe hat lediglich einen Namen. Dadurch kann z. B. gekennzeichnet werden, dass ein Verein mehrere Mannschaften stellen kann. Dies kann dann später im Spielplan berücksichtigt werden.

Der Zend-Server kann gleich mit einer mySql-Datenbank installiert werden. Deswegen werde ich diese Datenbank zugrunde legen.

Datenbankverbindung

Eine Datenbankverbindung kann über das zf-Tool eingerichtet werden. Ich habe das schon in dem Artikel Datenbank unter Zend ausführlich beschrieben.

ORM

ORM steht für Object-Relational Mapping und ist nichts anderes, als dass rationale Datenbanken auf Objekte abgebildet werden. Im offiziellen Zend-Tutorial werden dazu Model-, Mapper-, und Table-Klassen verwendet. Nachfolgende Skizze soll das verdeutlichen:

Zend Datenbank Abbildungen

Prinzip des Zend Datenbank ORM

Im Pseudocode der Funktion fetchAll sehen wir, dass im Mapper eine Instanz der Datenbank-Abstraktion geholt wird (z. B. eine MySql-Adapter-Klasse) über die Daten von der Datenbank geholt wird. Anschließend werden die Daten auf das Model abgebildet und zurückgegeben.

zf-Tool

Den Adapter konfigurieren und die ersten Klassen anlegen können wir einfach mit dem zf-Tool erledigen:

zf configure dbadapter "adapter=Pdo_Mysql&username=test&
                        password=test&dbname=zend_volleyball"
zf create db-table Team team
zf create db-table Competition competition
zf create db-table Group group
zf create model Team
zf create model Competition
zf create model Group

 

Ein Gedanke zu “3. Zend Tutorial

  1. Pingback: 4. Zend Tutorial | Tobias Seckinger

Kommentar verfassen