Rouven: Postgres Einsatz von Serials und Indices

Beitrag lesen

Hi,

also erfahrungsgemäß ist die Sache mit der Primärschlüsselwahl immer so eine Sache. Vorab: IIRC sollte jeder Primärschlüssel automatisch wie ein Index funktionieren, damit wäre eine weitere Indizierung dieser Spalte(n) unnötig. Zusätzliche Indizes, wie bereits von Hans erwähnt, lohnen sich eigentlich nur für Spalten nach denen gesucht, respektive über die gejoint wird.
Nun zur Wahl des Primärschlüssels. Wenn du sowieso eine UNIQUE-Angabe auf deiner Spalte drauf hast und ein Datensatz sonst keine weiteren Attribute hat, dann lohnt sich im Prinzip kein zusätzlicher Primärschlüssel. Interessant wird die Sache bei größeren Tabellen, d.h. wenn ein Datensatz aus mehreren Spalten besteht. Auch hier finden sich ja immer Möglichkeiten die eigentlichen Daten als Primärschlüssel zu verwenden, und wenn es alle Attribute zusammen sind. Dennoch ist dort dann die Empfehlung einen künstlichen Schlüssel einzufügen, weil dies die Änderung am Datensatz erleichert. Beispiel wäre z.B. eine Kundenkartei mit Aufträgen und Kundendaten. Doppelte Nachnamen mal außen vor, könnte man ja auf die Idee kommen Vorname+Nachname als Primärschlüssel für die Kunden zu nehmen, dementsprechend beim Auftrag als Fremdschlüssel Namen+Vornamen festzuhalten. Heiratet jetzt einer der Kunden und ändert damit seinen Nachnamen, so verursacht dis eine Menge Änderungsaufwand. Man sollte sich also eine Struktur suchen, bei der ein Primärschlüssel im Nachhinein _nicht_ mehr verändert wird, eben die künstliche Spalte KundenID oder sonstwas.

MfG
Rouven

--
-------------------
ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(