Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Warum nicht die Erstellungszeit eines Datensatzes als Primärschlüssel verwenden?

Die allgemeine Antwort lautet, dass sich Ihre Daten ändern können (was bei einer bedeutungslosen ID niemals der Fall sein wird) ... was passiert, wenn Sie feststellen, dass Sie Zeit in der lokalen Zone speichern und die Sommerzeit einsetzt? Möchten Sie gegen UTC und/oder gegen eine bestimmte Zeitzone speichern? Weitere Hinweise zur Bestellung finden Sie unter wcoenens Antwort .

Wenn Sie anfangen, Tausende von Zeilen pro Sekunde zu erstellen, und Sie mit Daten herumspielen müssen, um "es zum Laufen zu bringen", etwas zu tun, wofür es nicht vorgesehen war. Vielleicht würden Sie eine Disambiguierungsspalte hinzufügen, die Ihren Index größer und langsamer machen würde ...

Und dann, wenn Ihr Projekt mega populär wird und die Leute anfangen zu versuchen, Berichte/Abfragen auszuführen und "es verwendet ein Datum als PK???!!!"

Erwägen Sie auch die Verwendung einer Datenbank, die geclusterte Indizes für nicht primäre Spalten zulässt.