Parkside
Benutzer
- Beiträge
- 20
Ich habe ein grundsätzliche Frage zu Foreign Keys. Leider paßt sie in kein anderes Forum, glaube ich, denn adressiert ist sie an alle Benutzer von relationalen Datenbanken, egal von welchem Hersteller oder Entwicklerteam.
In MariaDB hatte ich einen FK definiert, der eine unique Spalte referenziert hat. In der Referenztabelle war der PK auf einer anderen Spalte. Dann habe ich die Tabellen migriert nach PG, und konnte den FK so nicht wiederherstellen. Es scheint, daß PG sich an eine strikte Definition hält:
Ein FK zeigt immer auf den PK einer anderen Tabelle.
Und das schließt aus, einfach einen unique-Key zu adressieren.
Microsoft sieht das so wie die MariaDB-Entwickler: Ein FK kann auch eine unique-Spalte referenzieren, andere Autoren schließen das kategorisch aus.
Wie seht Ihr das? An welcher SQL-Definition orientiert Ihr Euch?
Was mein praktisches Problem angeht: Ich habe PK und Unique-Index einfach vertauscht, damit hat's dann wieder gepaßt. Hoffentlich gibt es keine Seiteneffekte
...
In MariaDB hatte ich einen FK definiert, der eine unique Spalte referenziert hat. In der Referenztabelle war der PK auf einer anderen Spalte. Dann habe ich die Tabellen migriert nach PG, und konnte den FK so nicht wiederherstellen. Es scheint, daß PG sich an eine strikte Definition hält:
Ein FK zeigt immer auf den PK einer anderen Tabelle.
Und das schließt aus, einfach einen unique-Key zu adressieren.
Microsoft sieht das so wie die MariaDB-Entwickler: Ein FK kann auch eine unique-Spalte referenzieren, andere Autoren schließen das kategorisch aus.
Wie seht Ihr das? An welcher SQL-Definition orientiert Ihr Euch?
Was mein praktisches Problem angeht: Ich habe PK und Unique-Index einfach vertauscht, damit hat's dann wieder gepaßt. Hoffentlich gibt es keine Seiteneffekte
