Hauptmenü

Untermenü

PHP/MySQL - Praxistutorial 3 - Das Prinzip

1. Die Abschnitte

2. Vorab

... spielt ihr den aktuellen Dump ein (files/dump.sql) und dann schaut euch die Datenbank im MySQL-Frontend eurer Wahl an. Dann werdet ihr feststellen, dass sich im Vergleich zu den beiden ersten Tutorials einiges geändert hat. Und nicht nur dort.

3. Die Änderungen im Detail

Im Frontend

Wenn ihr jetzt den Basiscode im Browser aufruft, so fällt euch sicher auf, dass in der linken Navigation der Punkt "Bestellungen" hinzugekommen ist. Und im rechten Bereich gibt es nur noch oben einen Link namens "Überblick", wenn man links auf einen Punkt klickt.

Ach ja, bei den Bestellungen bekommt ihr nur ein paar Zahlen zu sehen. Das sieht ziemlich sinnfrei aus und ist es auch. Allerdings interessiert uns das nicht. Zum einen, weil ich nicht vorgreifen möchte und zum anderen, weil wir die Tabellen eh in anderen Dateien verknüpfen. Das geschieht dann über besagten Link "Überblick".

In der Datenbank

Hier hat sich eine ganze Menge getan. Es sind zwei Tabellen hinzugekommen, bestellung und zahlungsmoral. Außerdem wurde die Tabelle produkt um die Spalte hs_link sowie kunde um zm_link erweitert. Und die schauen wir uns jetzt genauer an.

4. Fremdschlüssel

Bei den beiden neuen Spalten handelt es sich um so genannte Foreign Keys. So verweist zum Beispiel die Spalte hs_link in der Tabelle produkt auf den Primärschlüssel (id) der Tabelle hersteller. Allerdings ist die Bezeichnung ein wenig unglücklich, da wir hier ohne FOREIGN KEY arbeiten werden. Das kommt in einem späteren Tutorial. Hier zeige ich erst mal nur das Konzept.


Tabelle 'produkt'                  Tabelle 'hersteller'
+----+--------------+---------+    +----+------------+
| id produkt      hs_link |    | id zulieferer |
+----+--------------+---------+    +----+------------+
|  Schlagbohrer |      1  | -> |  Hilti      |
+----+--------------+---------+    +----+------------+

Dasselbe gilt auch für die Spalte zm_link in der Tabelle kunde, die auf den entsprechenden Eintrag in der Tabelle zahlungsmoral verweist.


Tabelle 'kunde'                 Tabelle 'zahlungsmoral'
+----+-----------+---------+    +----+-------------+
| id doktor    zm_link |    | id art         |
+----+-----------+---------+    +----+-------------+
|  Quälstein |      3  | -> |  mittelmäßig |
+----+-----------+---------+    +----+-------------+

Die Tabelle bestellung

... schaut ihr euch am besten erst gar nicht an. Denn die besteht (fast) nur aus Fremdschlüsseln und sieht im Moment für euch eh wie böhmische Dörfer aus. Das Prinzip ist dasselbe, nur ein wenig komplizierter. Darum gehe ich darauf auch erst zum Schluss ein.

5. Wichtig!

Bei dieser Vorgehensweise müsst ihr wissen, dass die so genannte referentielle Integrität, also die Beziehung verschiedener Datensätze über mehrere Tabellen, nicht vom RDMS (MySQL) übernommen wird. Darum müsst ihr euch selber kümmern. Es gibt zwar eine Lösungsmöglichkeit dafür, aber dazu komme ich irgendwann beim geplanten Punkt "Advanced MySQL".

zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt