Lord Luxor
Neuer Benutzer
- Beiträge
- 4
Hallo,
ich will mal mein Problem beschreiben, ich hoffe ich kann das korrekt rüber bringen.
Ich habe vier Tabellen:
Informationenscluster, mit den Spalten id, integrity, confidential
Prozesse, mit den Spalten id, integrity, confidential, availability
Proz_Inf mit den Spalten id, proz_id, inf_id
Die Spalten proz_id und inf_id habe ich per foreign key jeweils mit der Spalte id der Tabellen Informationen und Prozesse verknüpft.
In den Spalten integrity und confidential sind Werte von 1-4 (INT) gespeichert.
Die vierte Tabelle dient der Übersetzung der Werte 1-4 in vom Benutzer gewählte Kategorien:
Schutzbedarfkategorien, mit den Spalten id, kategorie
Nebenbei sind die Spalten integrity und confidential aus Informationscluster und Prozesse jeweils mit foreign key mit der id aus der Tabelle Schutzbedarfkategorien verknüpft.
Folgender Hintergrund:
Prozesse können aus den Informationen, die im Prozess verarbeitet werden die Integrität (integrity) bzw. die Vertraulichkeit (confidential) nach dem Maximalprinzip erben. Nicht wundern, weil es bei Informationen keine Verfügbarkeit gibt, die wird dem Prozess aus einer anderen Quelle zugetragen.
Die Prozesse werden 1:n mit den Informationen über die Tabelle Proz_Inf verknüpft.
Ich möchte nun für Prozess 1, der mit den Informationen 1,2 und 3 verknüpft ist, den jeweiligen maximalen Wert für die drei Informationen in den Spalten integrity und confidential ermitteln. Das möchte ich in einer Abfrage erledigen.
SELECT proz.id, max(ic.integrity), max(ic.confidential) FROM prozesse AS proz left join proz_inf as proz_inf ON (proz.id = proz_inf.proz_id) LEFT JOIN informationscluster AS ic ON (proz_inf.inf_id = ic.id) WHERE proz.id = 1
So bekomme ich die entsprechenden Maximalwerte der Spalten.
Woran ich scheitere ist, wie bekomme ich noch die vierte Tabelle mit eingebunden, damit er mir die entsprechenden Kategorien für die Maximalwerte ausgibt?
Irgendein Tipp?
Bye
Markus
ich will mal mein Problem beschreiben, ich hoffe ich kann das korrekt rüber bringen.
Ich habe vier Tabellen:
Informationenscluster, mit den Spalten id, integrity, confidential
Prozesse, mit den Spalten id, integrity, confidential, availability
Proz_Inf mit den Spalten id, proz_id, inf_id
Die Spalten proz_id und inf_id habe ich per foreign key jeweils mit der Spalte id der Tabellen Informationen und Prozesse verknüpft.
In den Spalten integrity und confidential sind Werte von 1-4 (INT) gespeichert.
Die vierte Tabelle dient der Übersetzung der Werte 1-4 in vom Benutzer gewählte Kategorien:
Schutzbedarfkategorien, mit den Spalten id, kategorie
Nebenbei sind die Spalten integrity und confidential aus Informationscluster und Prozesse jeweils mit foreign key mit der id aus der Tabelle Schutzbedarfkategorien verknüpft.
Folgender Hintergrund:
Prozesse können aus den Informationen, die im Prozess verarbeitet werden die Integrität (integrity) bzw. die Vertraulichkeit (confidential) nach dem Maximalprinzip erben. Nicht wundern, weil es bei Informationen keine Verfügbarkeit gibt, die wird dem Prozess aus einer anderen Quelle zugetragen.
Die Prozesse werden 1:n mit den Informationen über die Tabelle Proz_Inf verknüpft.
Ich möchte nun für Prozess 1, der mit den Informationen 1,2 und 3 verknüpft ist, den jeweiligen maximalen Wert für die drei Informationen in den Spalten integrity und confidential ermitteln. Das möchte ich in einer Abfrage erledigen.
SELECT proz.id, max(ic.integrity), max(ic.confidential) FROM prozesse AS proz left join proz_inf as proz_inf ON (proz.id = proz_inf.proz_id) LEFT JOIN informationscluster AS ic ON (proz_inf.inf_id = ic.id) WHERE proz.id = 1
So bekomme ich die entsprechenden Maximalwerte der Spalten.
Woran ich scheitere ist, wie bekomme ich noch die vierte Tabelle mit eingebunden, damit er mir die entsprechenden Kategorien für die Maximalwerte ausgibt?
Irgendein Tipp?
Bye
Markus