Ich entwerfe ein neues System zum Speichern von Kurzmitteilungen [sic].Sollte ich meine AUTO_INCREMENT ID-Spalte auf 2^32 + 1 statt 0 initialisieren?
Ich werde jede Nachricht durch einen eindeutigen Bezeichner in der Datenbank identifizieren und eine AUTO_INCREMENT -Spalte verwenden, um diese Bezeichner zu generieren.
Herkömmliche Weisheit sagt, dass es okay ist, mit 0 zu beginnen und meine Nachrichten von dort zu nummerieren, aber ich bin besorgt über die Langlebigkeit meines Dienstes. Wenn ich eine externe API mache und es zu 2^31 Nachrichten mache, haben einige Leute, die die API benutzen, meine Kennung fälschlicherweise in einer vorzeichenbehafteten 32-Bit-Ganzzahl gespeichert. An diesem Punkt würden sie überlaufen oder abstürzen oder etwas Schreckliches würde passieren. Ich möchte diese Art von Foo-Pocalypse, wenn möglich, vermeiden.
Sollte ich "UPDATE Nachricht SET ID = 2^32 + 1;" bevor ich meinen Dienst starte und alle dazu zwinge, meine Kennungen von Anfang an als signierte 64-Bit-Nummern zu speichern?
Ich kenne die Besonderheiten Ihres Dienstes nicht, aber wenn Sie sich überhaupt mit der Sicherheit befassen, dann sind automatisch inkrementierende IDs oft eine schlechte Wahl, da sie es viel einfacher macht r für einen Hacker, um IDs für Datensätze vorherzusagen oder zu bestimmen, die sie nicht kennen sollten. Dies kann oder kann nicht für Ihren Service gelten, aber es ist etwas zu beachten. –
Was bedeutet [sic]? – Blorgbeard
http://en.wikipedia.org/wiki/Sic – slacy