Warum ist ein einzelner Primärschlüssel besser als zusammengesetzte Schlüssel?

Warum ist die Ablehnung von zusammengesetzten Schlüsseln zu Gunsten von alle Tabellen mit einem einzigen Primärschlüssel mit der Bezeichnung id? Ursache in der Regel alle ORM Folgen.

BEARBEITEN

Ich gerade angefangen zu lernen, ruby on rails und in das Buch der agilen Entwicklung von pragmatischen gibt es eine Zeile:---
Schienen wirklich nicht allzu gut funktionieren, es sei denn, jeder Tisch hat einen numerischen Primärschlüssel. Es ist weniger wählerisch über den Namen der Spalte.
Gleiche Art von Linie, die ich Lesen, als ich lernte die Lehre.

EDIT2
Bitte überprüfen Sie diesen link auch. Ich bin immer mehr und mehr verwirrt über diese Sache:---
Composite primary keys versus eindeutige Objekt-ID-Feld

Aus dem obigen link:--

*der primary key sollte konstant sein und bedeutungslos; nicht-Ersatzschlüssel in der Regel nicht, eine oder beide Voraussetzungen, schließlich

Wenn der Schlüssel ist nicht konstant, Sie haben eine Zukunft-update Problem, das kann kompliziert werden
wenn der Schlüssel ist nicht sinnlos, dann ist es wahrscheinlicher, sich zu ändern, d.h. nicht konstant sein; siehe oben

Nehmen Sie ein einfaches, typisches Beispiel: eine Tabelle von Inventar-Gegenstände. Es mag verlockend sein, um die Artikelnummer (SKU-Nummer, barcode, Artikel-code, oder was auch immer) der Primärschlüssel, aber dann ein Jahr später, alle Artikel-Nummern ändern und Sie sind Links mit einer sehr chaotisch update-die-ganze-Datenbank problem...

EDIT: es gibt ein zusätzliches Problem, das ist mehr praktisch als philosophisch. In vielen Fällen sind Sie gehen, um herauszufinden, eine bestimmte Zeile irgendwie, später dann aktualisieren Sie es oder finden Sie es wieder (oder beides). Mit zusammengesetzten Schlüsseln gibt es mehr Daten zu verfolgen und mehr Einschränkungen in der WHERE-Klausel für die neu zu finden oder zu aktualisieren (oder löschen). Es ist auch möglich, dass einer der wichtigsten Segmente in der Zwischenzeit geändert haben!. Mit einem Ersatzschlüssel, es gibt immer nur einen Wert zu behalten (Surrogat-ID) und per definition kann es nicht ändern, das vereinfacht die situation erheblich.*

InformationsquelleAutor der Frage Mohit Jain | 2010-04-19

Schreibe einen Kommentar