web-dev-qa-db-ja.com

URLに最適な列タイプは何ですか?

SQL ServerのURLフィールドに最適な列タイプは何ですか?

タイプ:VARCHARまたはNVARCHAR?

長さ

同様 MySQLへの質問

46
Adrian Godong

常にURLを保存する前にURLエンコードする準備ができている場合(Googleが作成した例では、中部.doc URLエンコードが%E4%B8%AD.docでした)、varcharを使用しても安全です。 URLの非ASCII文字をデータベースで読み取り可能なままにする場合は、nvarcharをお勧めします。追いつかれたくない場合は、nvarcharを使用してください。

IE(主流のブラウザの中で最も制限的なもの)は2083文字を超えるURLをサポートしていないため、(インデックス付けや行の長さに関する考慮事項は別として)、ほとんどをカバーできます。 nvarchar(2083)の便利なシナリオ。

51
David M

多言語のURLを保存しますか?その場合はnvarcharを使用し、そうでない場合はvarcharを使用します。

編集:長さに関しては IEがURLを2,083文字に制限するため できるためこれをフィールドの最大長として使用します。このような場合、URLはすべてのブラウザで使用できるため、より低い公分母を使用する必要があります。実際、これはフィールドの実用的な上限であり、データが含まれることはほとんどありませんIEの制限にさえ近づく場所を取得します。

10
Andrew Hare

そのようなことについては、私は常に注意を怠ってnvarcharを使用します。

3
BBlake

SQL Serverの場合、URLにローマ字以外の文字を使用する計画(まだアクションがなければ)があるため、私は思っていたNVARCHARを使用したいと思うでしょう。最近は、VARCHARよりもNVARCHARの追加のストレージ要件で問題が発生することはほとんどありません。

2
Matt Sach