0%

Kapitel 6

Tabellen verknüpfen, statt Daten zu wiederholen

Einen Ausleihvorgang auf zwei Datensätze verweisen lassen

Riley hat den Akkubohrer ausgeliehen. Der Katalog kennt beide Datensätze bereits, aber keiner soll in eine neue Zeile kopiert werden.

items
idasset_tagname
1IT-100Cordless drill
members
idmember_codename
17MB-017Riley

Ein Ausleihvorgang kann stattdessen die beiden IDs speichern:

loans.iditem_idmember_idchecked_out_onreturned_on
5011172026-08-18NULL

Folge jetzt den beiden Zahlen in der Ausleihzeile. Jeder Pfeil endet bei der passenden id; der Ausleihvorgang 501 selbst verweist auf nichts:

Ausleihvorgang 501 verweist mit item_id 1 auf Gegenstand 1, Cordless drill, und mit member_id 17 auf Mitglied 17, Riley.

Lies die letzte Zeile von links nach rechts. Die id jeder Tabelle ist ihr Primärschlüssel. item_id ist 1 und verweist damit auf den Bohrer. member_id ist 17 und verweist damit auf Riley. Die eigene id des Ausleihvorgangs, 501, identifiziert dieses Ausleihereignis. Jede ID hat eine Aufgabe.

So bleiben veränderliche Angaben an einer Stelle. Wenn sich Rileys angezeigter Name ändert, wird die Mitgliederzeile einmal geändert. Vergangene und aktuelle Ausleihvorgänge verweisen weiterhin auf Mitglied 17. Wenn der Name des Bohrers präzisiert wird, ändert sich seine Gegenstandszeile aus demselben Grund einmal.

Ein Mitglied kann im Laufe der Zeit mehrere Ausleihzeilen haben. Auch ein Gegenstand kann im Laufe der Zeit mehrere Ausleihzeilen haben, weil abgeschlossene Ausleihvorgänge als Verlauf erhalten bleiben. Dieses Muster heißt Eins-zu-viele-Beziehung: Ein übergeordneter Datensatz kann mit vielen zugehörigen Datensätzen verbunden sein.

Auch der fehlende Wert in returned_on hat eine nützliche Bedeutung. Der Gegenstand wurde noch nicht zurückgegeben. Diese Information hilft uns bald, aktive Ausleihvorgänge zu finden. Konzentriere dich vorerst auf die Form: Ein Ausleihvorgang enthält seine eigenen Angaben und die beiden IDs, die ihn mit bereits vorhandenen Datensätzen verbinden.

Welche Werte gehören in die Zeile, die Rileys Ausleihe des Bohrers festhält?