Hallo,
Wenn Du Postleitzahlen immer nur als Zahlen zulassen darfst, nimm auch Zahlen, da sie um ein Vielfaches weniger Speicher bedürfen. (z.B. int(5))
Richtig ins Verhältnis setzen musst Du bei Deinen Vorüberlegungen auch die spätere Größe mit der Flexibilität der Datenbank.
Das bedeutet, solange Du nur Daten unterhalb von 1000 Datensätzen hast, mach’ die Felder ruhig schön Groß, damit auch jede Eingabe hineinpasst, da spielt der Platz noch nicht so die Rolle. Wenn also Für Ortsnamen in der Regel varchar(40) ausreicht, kann man hier ruhig auch varchar(100) veranschlagen, für den Fall der Fälle.
Wenn Du natürlich weit über 100.000 Daten in eine Tabelle einpflegst (Statistik, Protokollierung, o.ä.), solltest Du jedes Bit in einer Feldgröße genau abwägen.
Soviel ich weiß, ist die Größe der einzelnen Feldarten im „SQL-Kompendium“ beschrieben, kann aber auch in „SQL in 21 Tagen“ gewesen sein.
Ich nehme für ‚normale‘ Textfelder eigentlich immer varchar(x), außer wenn die Buchstabenzahl klar ist, dann char(x).
‚Tach‘ zurück
Easy
[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]