![]() |
Datenbank: SQLite • Version: 3 • Zugriff über: SQLQuery
Können zwei Tabellen gegenseitig zu einander in Beziehung stehen?
Hallo,
können zwei Tabellen (A, B) gegenseitig zu einander in Beziehung stehen? Ein FK der Tabelle A zeig auf die Tabelle B, und der FK der Tabelle B zeigt auf die Tabelle A? Oder ist das keine gute Idee? Danke! |
AW: Können zwei Tabellen gegenseitig zu einander in Beziehung stehen?
Kommt drauf an. Normalerweise ist das ein Indiz, das etwas am Design faul ist, muss aber nicht. Nenn mal ein konkretes Beispiel.
|
AW: Können zwei Tabellen gegenseitig zu einander in Beziehung stehen?
Tabelle Alarm
--------- id alarmdatetime fk_jobid Tabelle Job --------- id job fk_alarmid Nun ist es so, mehrere Alarme können auf einen Job verweisen dazu der FK. Und den FK in der Tabelle Job brauche ich um alle Alarme aus der Tabelle Alarm zu löschen falls ein Job gelöscht wird. |
AW: Können zwei Tabellen gegenseitig zu einander in Beziehung stehen?
Ich würde hier mit einer Zwischentabelle arbeiten.
Aber die Rückverknüpfung ist eigentlich nicht notwendig
SQL-Code:
Delete from alarm a where a.<pk> in ( select j.<pk> from job j where j.<fk> = a.<pk>);
|
AW: Können zwei Tabellen gegenseitig zu einander in Beziehung stehen?
Ok...
|
AW: Können zwei Tabellen gegenseitig zu einander in Beziehung stehen?
mehrere Alarme können auf einen Job verweisen und wenn ich einen Job lösche, muss ich ebenfalls zugehörige Alarme löschen. Ist das DB-technisch gesehen nicht die gleiche Beziehung, will heißen, der FK in Jobs, der ja nur auf ein Elemant in Alarm zeigen könnte ist eh überflüssig?
|
AW: Können zwei Tabellen gegenseitig zu einander in Beziehung stehen?
Zitat:
Angenommen, man hätte sowas wie "Roter Alarm", der pro Job nur einmal vorkommen kann und dessen Eigenart unabhängig von den Merkmalen der gesamten Alarmliste je Job ist, könnte man sowas vielleicht gebrauchen. |
AW: Können zwei Tabellen gegenseitig zu einander in Beziehung stehen?
Also pro Job mehrere Alarme? Ok, also der FK in der Alarmtabelle auf die Jobs. Klar.
Aber wozu hat dann ein Job eine Alarm-FK? Zum Löschen *aller* Alarme, wo die FK_AlarmID doch nur auf einen Alarm zeigt? Verstehe ich nicht. Löschen eines Jobs 'JID'
Code:
Hab ich da was falsch verstanden?
delete from Alarme where FK_JobID='JID'
delete from Job where ID = 'JID' |
AW: Können zwei Tabellen gegenseitig zu einander in Beziehung stehen?
Ne, ist schon richtig so, alles richtig verstanden... danke! :thumb:
|
AW: Können zwei Tabellen gegenseitig zu einander in Beziehung stehen?
eine gute Gelegenheit sich mal hiermit zu beschäftigen ;-)
![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:26 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz