2009-07-21 104 views

回答

42

如果您準備在存儲這些URL之前始終對您的URL進行URL編碼(Google提供的一個示例是中.doc URL編碼爲%E4%B8%AD.doc),那麼您可以安全地使用varchar。如果你想讓URL中的非ASCII字符在數據庫中保持可讀性,那麼我推薦nvarchar。如果你不想被抓到,那麼去nvarchar。由於IE(主流瀏覽器中限制最多的)不支持長度超過2083個字符的URL,因此(除了可能對索引或行長度所做的任何考慮事項外),您可以使用nvarchar覆蓋大多數有用的方案( 2083)。

10

你會存儲多語言網址嗎?如果是這樣,請使用nvarchar,否則使用varchar

編輯:至於長度,since IE limits URLs to being 2,083 characters你可以使用它作爲你的領域的最大長度。在這些情況下,您希望使用較低的公分母,因爲您的網址應該可以在所有瀏覽器中使用。真的,這是一個實際的上限,很可能永遠不會包含任何接近IE限制的數據。

+0

其中一個用途是OpenID網址,因此它將爲任何有效的網址開放。 – 2009-07-21 15:28:51

+1

然後使用nvarchar。 – 2009-07-21 15:31:55

+1

長度如何? – 2009-07-21 15:33:16

3

對於這樣的事情,我會一直犯錯,並使用nvarchar。

2

對於SQL Server,您會想要使用NVARCHAR我會想到,因爲有計劃(如果不是已經有操作)正在爲URL中的非羅馬字符進行。在NVARCHAR over VARCHAR的額外存儲需求中,我目前無法真正看到任何問題。

相關問題