Ersatzschlüssel (normalerweise Ganzzahlen) haben den Mehrwert, dass Ihre Tabellenbeziehungen schneller und wirtschaftlicher in Bezug auf Speicher- und Aktualisierungsgeschwindigkeit sind (noch besser, Fremdschlüssel müssen bei der Verwendung von Ersatzschlüsseln im Gegensatz zu Geschäftsschlüsselfeldern nicht aktualisiert werden.) das ändert sich ab und zu).
Der Primärschlüssel einer Tabelle sollte verwendet werden, um die Zeile eindeutig zu identifizieren, hauptsächlich für Verknüpfungszwecke. Denken Sie an eine Personentabelle: Namen können sich ändern, und sie sind nicht garantiert eindeutig.
Think Companies: Sie sind ein glückliches Merkin-Unternehmen, das mit anderen Unternehmen in Merkia Geschäfte macht. Sie sind klug genug, den Firmennamen nicht als Primärschlüssel zu verwenden, und verwenden daher die eindeutige Firmen-ID der Regierung von Merkia in ihrer Gesamtheit von 10 alphanumerischen Zeichen. Dann ändert Merkia die Firmen-IDs, weil sie dachten, es wäre eine gute Idee. Es ist in Ordnung, Sie verwenden die kaskadierte Update-Funktion Ihrer Datenbank-Engine für eine Änderung, die Sie nicht an erster Stelle einbeziehen sollte. Später expandiert Ihr Geschäft und jetzt arbeiten Sie mit einem Unternehmen in Freedonia zusammen. Die freedonische Firmen-ID besteht aus bis zu 16 Zeichen. Sie müssen den Primärschlüssel der Unternehmens-ID (auch die Fremdschlüsselfelder in Bestellungen, Ausgaben, Geldtransfers usw.) vergrößern und im Primärschlüssel (auch in den Fremdschlüsseln) ein Länderfeld hinzufügen. Autsch! Bürgerkrieg in Freedonia, es ' s in drei Länder aufgeteilt. Der Ländername Ihres Mitarbeiters sollte in den neuen Namen geändert werden. kaskadierte Updates zur Rettung. Übrigens, was ist Ihr Primärschlüssel? (Land, Firmen-ID) oder (Firmen-ID, Land)? Letzteres hilft beim Beitritt, Ersteres vermeidet einen anderen Index (oder vielleicht viele, falls Sie möchten, dass Ihre Bestellungen auch nach Ländern gruppiert werden).
All dies ist kein Beweis, aber ein Hinweis darauf, dass ein Ersatzschlüssel zur eindeutigen Identifizierung einer Zeile für alle Verwendungszwecke, einschließlich Verknüpfungsvorgängen, einem Geschäftsschlüssel vorzuziehen ist.