Angenommen, ich habe eine Tabelle mit einem Primärschlüssel a_id
und Fremdschlüssel b_id
.Was ist der beste Weg, um sicherzustellen, dass Primärschlüssel und Fremdschlüssel sich niemals schneiden?
Es ist wichtig, dass sich a_id
und b_id
niemals schneiden, d. H. Es sollte niemals der Fall sein, dass es einen a_id = b_id
gibt.
Was wäre der beste Weg, dies zu implementieren? Könnte ich das irgendwie am Datenbankende machen (mySql), oder sollte dies programmgesteuert sichergestellt werden? Wenn ich dies programmatisch sicherstelle, ist es eine schlechte Praxis, eine Nummer für einen Primärschlüssel einzugeben (anstatt die Datenbank automatisch zu inkrementieren)? Ich nehme an, ich würde nur eine Routine erstellen, die den neuesten Primärschlüssel überprüft und ihn einfach inkrementiert (und ich würde auch sicherstellen müssen, dass der Bereich von a_id
niemals den Bereich von b_id
schneidet). Irgendwelche Vorschläge?
Normalerweise muss ein Fremdschlüssel mit dem entsprechenden Primärschlüssel übereinstimmen. der Schnittpunkt von A und B muss gleich B sein (obwohl in A Einträge ohne einen übereinstimmenden Eintrag in B enthalten sein könnten). Also, was meinen Sie mit Primär- und Fremdschlüsseln, die sich nicht schneiden? Warum? –