In vielen meiner Datenbanken sind Felder als varchars definiert. Dies war kein großes Problem, da ich in Amerika lebe und arbeite (wo die einzige Sprache, die existiert, "amerikanisch" ist. Ahem )
Nachdem ich ungefähr 5 Jahre mit Datenbanken gearbeitet habe, habe ich festgestellt, dass ich irgendwann Probleme mit der eingeschränkten Natur des varchar-Felds habe und meine Felder modifizieren muss, um Daten als nvarchars zu speichern. Nachdem ich eine Tabelle erneut aktualisieren musste, um ein varchar-Feld in ein nvarchar-Feld umzuwandeln, kam mir nur der Gedanke: Warum machen wir das immer noch so? Ich habe schon lange die mentale Entscheidung getroffen, alle neuen Textfelder in nvarchar zu definieren, anstatt in varchar. Das habe ich aus meinen Lehrbüchern gelernt, als ich vor 10 Jahren in der Schule war.
Es ist 2011 und es gab letztes Jahr eine neue Version von SQL Server. Warum unterstützen wir weiterhin einen varchar-Datentyp, wenn wir stattdessen nvarchar verwenden können / sollten?
Ich weiß, dass oft behauptet wird, dass nvarchars "doppelt so groß" wie varchars sind, so dass die Verwendung von Speicherplatz ein Argument für die Wartung von varcars sein könnte.
Benutzer von heute können jedoch ihre nvarchars so definieren, dass die Daten als UTF-8 statt als Standard-UTF-16 gespeichert werden, wenn sie Speicherplatz sparen möchten. Dies würde eine 8-Bit-Codierung ermöglichen, wenn dies in erster Linie wünschenswert ist, während sichergestellt wird, dass das seltene 2-8-Byte-Zeichen, das in die Datenbank eingefügt wird, nichts kaputt macht.
Vermisse ich etwas? Gibt es einen guten Grund, warum sich dies in den letzten 15-20 Jahren nicht geändert hat?