Zitat:
Dies widerspricht aber der Maxime, seine Surrogatschlüssel nichtsprechend zu halten. Insofern ist das nicht unbedingt ein Vorteil.
Und mit anderer Schrittweite ist er nun abhängig von den Werten der Tabelle? Oder wird verhindert das Wete in der Tabelle nicht mehr geändert werden können, wenn jemand möchte, dass der PK über mehrere Tabellen eindeutig ist?
Das ist dann i.A. kein gutes Design, aber darum geht es nicht. Für den Regelfall, nämlich einen PK in einer Tabelle, kann man AutoInc einführen. Und Generatoren obendrauf, z.B. für die Exoten, die eine gemeinsame Nummer für unterschiedliche Tabellen haben wollen.
Zitat:
Zitat:
Generatoren sind allgemeingültiger, und vielleicht dachte jemand, das sei schlau.
Generatoren oder Sequenzen gibt es auch in anderen
DBMS und sind idZw. auch Teil des
SQL-Standards.
Yo. Jemand dachte halt, das sei schlau.
Zitat:
Dann nimm halt ein "intelligentes" Datenbanksystem mit autoinc wie zB.
Paradox oder
access und mach einen großen Bogen um die "unpraktischen" Frickelsystem wie FireBird, Oracle und Co.
Lass das mal mit dem Hyperventilieren. Nur weil man Generatoren ohne Autoinc-Felder nicht als Nonplusultra erachtet, heißt das ja nicht, das man das RDBMS für ein Frickelsystem hält. Keine Ahnung, wie Du darauf kommst.
Ideal wäre es, wenn in
FB z.B. noch ein Attribut (oder ein Datentyp) 'AUTOINC' hinzukommt. Dann wäre Ruhe. Natürlich würden viele schreien 'Das braucht man nicht, das macht mit mit nem Generator und nem Trigger', aber For-Schleifen braucht man auch nicht, und es gibt sie trotzdem. Denn sie sind praktisch.
Aber wieso werden immer Autoincfelder verwendet? Wir verwenden hier lieber GUIDs um diverse Nachteile von AutoInc-Felder zu umgehen. Und diese Zahlenwerte sind auch nicht lesbarer als die GUIDs
Ich meine, die Speicherperformance bei
GUID-PK (Clustered Index) ist schlechter als bei einem Indentity-Wert. Aber als eindeutige ID über Tabellen- und Servergrenzen hinweg ist es schon echt praktisch.
BTW: Zum Thema Lesbarkeit von
GUID:
"Ey, Bernhard, welcher Record hat nochmal das Problem? Ich wollte kurz mal da rein schauen"
A: "ID 12 45 678"
B: "C87FC... ach, ich schicks Dir per Skype"