常にURLを保存する前にURLエンコードする準備ができている場合(Googleが作成した例では、中部.doc URLエンコードが%E4%B8%AD.docでした)、varcharを使用しても安全です。 URLの非ASCII文字をデータベースで読み取り可能なままにする場合は、nvarcharをお勧めします。追いつかれたくない場合は、nvarcharを使用してください。
IE(主流のブラウザの中で最も制限的なもの)は2083文字を超えるURLをサポートしていないため、(インデックス付けや行の長さに関する考慮事項は別として)、ほとんどをカバーできます。 nvarchar(2083)の便利なシナリオ。
多言語のURLを保存しますか?その場合はnvarchar
を使用し、そうでない場合はvarchar
を使用します。
編集:長さに関しては IEがURLを2,083文字に制限するため できるためこれをフィールドの最大長として使用します。このような場合、URLはすべてのブラウザで使用できるため、より低い公分母を使用する必要があります。実際、これはフィールドの実用的な上限であり、データが含まれることはほとんどありませんIEの制限にさえ近づく場所を取得します。
そのようなことについては、私は常に注意を怠ってnvarcharを使用します。
SQL Serverの場合、URLにローマ字以外の文字を使用する計画(まだアクションがなければ)があるため、私は思っていたNVARCHARを使用したいと思うでしょう。最近は、VARCHARよりもNVARCHARの追加のストレージ要件で問題が発生することはほとんどありません。