2017-10-17 2 views
0

Ich habe 3 Tabellen mit vielen zu vielen Beziehung:Wie ändert man die Variable in der Beziehung "Viele zu Vielen"?

t1 
ID(PK) NAME  VISIBLE 
1  John  1 
2  Sam  1 
3  Kurt  0 
--------------------------- 
t2 
ID(PK) NAME  VISIBLE 
1  Product1 1 
2  Product2 0 
--------------------------- 
t3 
IDt1(FK) IDt2(FK) VISIBLE 
1   1   1 
2   1   1 
3   2   0 

Also, was ich brauche:

Wenn ich sichtbar in t1 ändern, wird die Spalte visible in t2 auch geändert, wenn sie in t3 verbunden sind Tabelle.

Zum Beispiel: Wenn ich Kurt (visible = 0) gesetzt in t1 sollte product2 automatisch Product2 (visible = 0), weil sie in t3 Tabelle verbunden sind.

Wie geht das mit FK beim Entwerfen der Datenbank?

Oder ist es grundlegend falsch?

+0

Was passiert mit 'Product1' wenn Sie' John (visible = 0) 'setzen, aber' Sam' ist immer noch sichtbar = 1'? –

+0

@PaulSpiegel sollte es sowieso auf "sichtbar = 0" wechseln. –

+0

Also ein Produkt ist immer nicht sichtbar, wenn einer der verwandten Namen (von 't1') nicht sichtbar ist? Und wenn Sie "John" zurück in "Product1" ändern, sollte auch sichtbar werden? –

Antwort

1

Mit der FK können Sie das nicht tun. Das Ziel der Verwendung von FK ist anders, es hilft, die Beziehung oder Abhängigkeit von Daten mit PK zu überprüfen. Es ist hilfreich beim Löschen der PK- und abhängigen FK-Daten.

Vielleicht können Sie dieses Design mit Triggern auf der Tabelle erreichen, aber es ist nicht der richtige Weg, dies auf Datenbankebene zu tun. Es wird Leistungsprobleme verursachen. Stattdessen sollten Sie dies programmgesteuert durchführen.

Verwandte Themen