Hi MichiLee!
Ich hätte das so geschrieben:
Zwischentabelle(Zwsichen_ID(PK), Spalte_DB1(FK), Spalte_DB2(FK))
Das kann man natürlich machen. Aber es wird nicht benötigt, da du sowieso ein Wertepaar aus Spalte_DB1 und Spalte_DB2 sowieso eindeutig sein muss.
Ich bin mir auch gerade nicht sicher, ob diese Relation dann noch der 3. Normalform entspräche.
Wusste nicht, dass man einen Schlüssel, sowohl als Primär, als auch als Fremd definieren könnte :-)
So ist es ja auch nicht. Die Fremdschlüsselbeziehung besagt ja nur, dass der Wert einer Tabelle einen Wert einer anderen referenzieren muss, dass also die Tabelle (bzw. die Spalte), auf die der Fremdschlüssel verweist, einen solchen Wert enthalten muss.
Der Primärschlüssel definiert hingegen eine Attributmenge (also eine gewisse Anzahl von Spalten) einer Relation (Tabelle), die jeden einzelnen Datensatz der Relation eindeutig identifizieren können muss.
In diesem Zusammenhang ist ein zusammengesetzter Schlüssel(-kandidat) einfach nur die logische Konsequenz, die aus der Definition einer n:m-Beziehung folgt.
Ein Attribut, das gleichzeitg Fremd- und Primärschlüssel ist, wäre auch widersinnig, da alle Informationen der Relation auch in der Relation, auf die der Fremdschlüssel zeigt, gespeichert werden können.
Ausnahme könnte hier allenfalls die Erweiterung eines bestehenden Datenbankdesigns bilden (z. B. ein Plugin für ein Programm, das einfach (de-)installiert werden und weitere Informationen zu schon vorhanden Datensätzen speichern können soll).
MfG H☼psel
"It's amazing I won. I was running against peace, prosperity, and incumbency."
George W. Bush speaking to Swedish Prime Minister unaware a live television camera was still rolling, June 14, 2001
Selfcode: ie:% fl:( br:> va:) ls:& fo:) rl:? n4:& ss:| de:] js:| ch:? sh:( mo:) zu:)