Was ist der beste Spaltentyp für URL?

Was ist der beste Spaltentyp für ein URL-Feld für SQL Server?

Typ: VARCHAR oder NVARCHAR?

Länge ?

Ähnlich question for MySQL. .

Antwort auf "Was ist der beste Spaltentyp für URL? " 4 von antworten

Werden Sie mehrsprachige URLs speichern? Wenn ja, verwenden Sie nvarchar, otherwise use , andernfalls verwenden Sie varchar. .

Bearbeiten: Wie für die Länge, since IE limits URLs to being 2,083 characters you could use that as the maximum length of your field. In cases like these you want to use the lower common denominator as your URLs should be usable in all browsers. Really this is a practical cap on a field that most likely will never contain data the will get anywhere close to even IE's limits. könnten Sie das als maximale Länge Ihres Feldes verwenden. In Solchen Fällen möchten Sie den unteren gemeinsamen Nenner verwenden, da Ihre URLs in allen Browsern verwendet werden sollten. Wirklich ist dies eine praktische Obergrenze für ein Feld, das höchstwahrscheinlich nie Daten enthalten wird, die sogar an die Grenzen von IE kommen.

Für so etwas würde ich immer auf der Seite der Vorsicht und verwenden Sie die nvarchar.

Für SQL Server möchten Sie NVARCHAR verwenden, hätte ich gedacht, da es Pläne (wenn nicht bereits Action) für nicht-römische Zeichen in URLs gibt. Ich sehe heutzutage keine wirklichen Probleme bei den zusätzlichen Speicheranforderungen für NVARCHAR über VARCHAR.

Wenn Sie bereit sind, Ihre URLs immer URL-codierungen, bevor Sie sie speichern (ein von Google aufgetauchtes Beispiel war 中.doc URL-Codierung zu %E4%B8%AD.doc), dann sind Sie sicher, mit varchar zu bleiben. Wenn Sie möchten, dass die Nicht-ASCII-Zeichen in Ihren URLs in der Datenbank lesbar bleiben, dann würde ich nvarchar empfehlen. Wenn Sie nicht erwischt werden wollen, dann gehen Sie für nvarchar.

Da IE (der restriktivste der Mainstream-Browser) keine URLs mit mehr als 2083 Zeichen unterstützt, können Sie (abgesehen von allen Überlegungen, die Sie bei der Indizierung oder Zeilenlänge haben) die nützlichsten Szenarien mit nvarchar(2083) abdecken.