Advanced MySQL - Zwischenspeicherung - Views
1. Definition
Ein View, auch Sicht genannt, ist eine logische Beziehung zwischen Datensätzen, auf die direkt zugegriffen werden, ohne die innere Struktur des Views zu kennen. Dieses Konstrukt wird auch als virtuelle Tabelle bezeichnet. Alles kapiert? Nö? Macht nichts, erkläre ich euch.
2. Datenbankstrukturen und Relationen
... können schon mal ein wenig kompliziert werden. Besonders wenn Leute damit arbeiten müssen, die sich da nicht so toll auskennen. Also wir haben folgende Datenbankstruktur.
Tabelle adresse
+--+-------+------+--------+-----+----+
|id|vorname|name |strasse |plz |ort |
+--+-------+------+--------+-----+----+
| 1|Peter |Kropff|Im Dau 8|50678|Köln|
+--+-------+------+--------+-----+----+
Tabelle konto
+--+------+--------+------+
|id|adr_id|blz |ktonr |
+--+------+--------+------+
| 1| 1|12345678|654321|
+--+------+--------+------+
Tabelle saldo
+------+--------+-------+
|kto_id|guthaben|dispo |
+------+--------+-------+
| 1| 3500.00|3500.00|
+------+--------+-------+
Die Relation
In der Tabelle konto
ist adr_id
der Fremdschlüssel, der in der Tabelle adresse
auf
id
verweist. Und in saldo
ist es kto_id
, das sich auf id
in konto
bezieht.
3. Die Abfrage
... sieht dann zum Beispiel so aus.
SELECT
a.id,
a.vorname,
a.name,
a.strasse,
a.plz,
a.ort,
k.blz,
k.ktonr,
s.guthaben,
s.dispo,
s.guthaben + s.dispo as verfuegbar
FROM
adresse a
INNER JOIN
konto k on (k.adr_id = a.id)
INNER JOIN
saldo s on (s.kto_id = k.id)
WHERE a.id = 1;
Wie man unschwer erkennen kann, ist das ein ziemlicher Rattenschwanz. Und wenn man den beim Programmieren zig Mal abtippern muss, so nervt das auf Dauer. Oder stellt euch mal Joins über zehn oder mehr Tabellen vor, wo außerdem noch komplexe Berechnungen durchgeführt werden. Und für solche Fälle sind Views gedacht.
zurück zum vorherigen Abschnitt weiter zum nächsten Abschnitt