Allgemeines zu Tabellenverknüpfungen

Hallo,

…und nun habe ich noch eine allgemeine Frage zu Verknüpfungen.

Warum werden eigentlich Tabellen direkt miteinander verknüpft?

Bisher habe ich mich öfters damit beholfen, in einem Formular die Verknüpfung von einer Tabelle zur anderen herzustellen, indem ich in einem Textfeld die Datenherkunft auf die eigentlich zu verknüpfende Tabelle erfasst habe und dort das entsprechende Datenfeld angezeigt habe.
Somit wird mir im Formular nicht mehr der Primärschlüssel, sondern das gewünschte Datenfeld angezeigt.

Danke,
Bernd

Hallo,

…und nun habe ich noch eine allgemeine
Frage zu Verknüpfungen.

Warum werden eigentlich Tabellen direkt
miteinander verknüpft?

Nehmen wir an, du verknüpfst Adressen mit Rechnungen. Durch Tabellenverknüpfungen (Foreign-Keys) kannst du der Datenbank sagen, wie Daten zusammengehören und durch entsprechende Properties der Relation jederzeit Konsistenz garantieren. D.h.:
Nehmen wir an du speicherst in der Rechnung den ID-Key der Adresse, an den die Rechnung gegangen ist. Nach einiger Zeit geht die Firma in Konkurs, jemand löscht die Adresse aus der Datenbank.
Hast Du keine Relation definiert, hast du nun eine Rechnung ohne Empfänger, kommt eine neue Adresse in die Datenbank und die bekommt den ID-Key der gelöschten Adresse, hat die Rechnung einen falschen Empfänger: Chaos extra.

Wenn du Constraint-Delete definiert hast, hätte die Datenbank die Rechnungen der gelöschte Adresse auch gelöscht, was korrekt gewesen wäre.

Bisher habe ich mich öfters damit
beholfen, in einem Formular die
Verknüpfung von einer Tabelle zur anderen
herzustellen, indem ich in einem Textfeld
die Datenherkunft auf die eigentlich zu
verknüpfende Tabelle erfasst habe und
dort das entsprechende Datenfeld
angezeigt habe.
Somit wird mir im Formular nicht mehr der
Primärschlüssel, sondern das gewünschte
Datenfeld angezeigt.

Im Formular kannst du ein Datenbankfeld auch unsichtbar setzen.

so long,
liebe grüsse,
hatse butz