Mahlzeit,
Hatte jetzt grad das Problem, das eine Spalte als medium int
definiert wurde und hier jetzt das Limit erreicht war.
Bin grad am überlegen ob ich nicht grundsätzlich alles als int
definiere, damits da in Zukunft keine Probleme mehr gibt.
ich nehme an, daß Du von mySQL sprichst. Dort gibt es die Datentypen medium int, der auf 3 Byte basiert, und int, der 4 Byte groß ist. Mit ersterem hast Du einen Wertebereich, der 2^24 oder 16.777.216 verschiedene Werte umfaßt; mit letzterem sind 2^32 oder 4.294.967.296 verschiedene Werte darstellbar.
Die erste Zahl kann schon in normalen, alltäglichen Situationen erreicht werden (nein, nicht mein Kontostand), so daß Du diese Grenze relativ schnell sprengen könntest. Mit der zweiten hast Du da ein bißchen mehr Sicherheit.
Nimmst Du medium int, wirst Du für diese Spalte etwas weniger als ein Byte pro Datensatz gegenüber int sparen (ein bißchen Overhead geht bei dieser Art Speicherung verloren). Das ist, wie Freiherrr von und zu Vensre schon darlegte, bei den heutigen Plattenpreisen sicherlich kein großes Problem.
Entscheidend dürfte aber die Zugriffsgeschwindigkeit sein: Du sprichst von IDs, und da ist es wichtig, daß der Zugriff so schnell wie möglich erfolgen kann. Wenn ich unterstellen darf, daß Du mit einem PC arbeitest, so ist deren „Muttersprache“ 32bittig. Da müßte vor jedem Zugriff der Schlüssel noch verarbeitet werden, bevor er ausgewertet werden kann - zeitlich eine Katastrophe.
Lange Rede, kurzer Sinn: nimm int für Schlüsselattribute!
Gruß
Sancho