Hi,
Und ich habe noch nicht einen einzigen Fall gesehen, in dem ein AutoInkrement-Wert als Primärschlüssel die beste Lösung war.
ich muss gestehen, dass ich mit MySQL noch nichts komplexeres gemacht habe; aber wenn auto_increment sich nicht wesentlich von Sequenzen in Oracle unterscheidet, kann ich dies nicht nachvollziehen.
Entweder die Daten geben selbst einen besseren Primärschlüssel her,
Oft bestehen Tabellen aus einer Vielzahl von Spalten, die allenfalls in ihrer Gesamtsumme einen Primary Key ergeben - und manchmal sind sie auch dann nicht unique.
oder sie geben möglicherweise überhaupt keinen Primärschlüssel her.
Richtig, dafür wird dann einer generiert :-)
Eine Tabelle muß nicht zwingend einen Primärschlüssel haben.
Nein, natürlich nicht. Den braucht sie nur, wenn von woanders aus darauf referenziert wird (wobei ich gerade bei Kreuztabellen nichts dagegen habe, statt eines Unique-Constraints gleich einen Primary Key zu verwenden, aber das ist wohl Geschmackssache). Meiner Erfahrung nach ist es nicht nur aus Gründen der Übersichtlichkeit in aller Regel besser, ab mehreren Spalten, die zusammen den PK ergeben würden, und ab längeren VARCHAR-Feldern eine ID zu vergeben - andernfalls müsste man die Daten redundant in anderen Tabellen speichern, was die Performance und den Platzverbrauch sicher auch nicht wesentlich verbessern.
Aber klar, Du hast recht: Alle Pauschalaussagen sind falsch und dumm ;-) Vielleicht weißt Du über auto_increment aber auch mehr als ich, weshalb ich Deinen Einwand darüberhinaus nicht verstehe...
Cheatah