2009-07-21 31 views

Trả lời

42

Nếu bạn chuẩn bị luôn URL mã hóa URL của mình trước khi lưu trữ chúng (ví dụ được Google bật là mã hóa URL .doc .doc thành% E4% B8% AD.doc) thì bạn an toàn gắn bó với varchar. Nếu bạn muốn các ký tự không phải ASCII trong các URL của bạn vẫn có thể đọc được trong cơ sở dữ liệu thì tôi khuyên bạn nên dùng nvarchar. Nếu bạn không muốn bị bắt, hãy đi tìm nvarchar.

Vì IE (hạn chế nhất trong các trình duyệt chính) không hỗ trợ URL dài hơn 2083 ký tự, nên bạn có thể xem các kịch bản hữu ích nhất với nvarchar (2083).

+1

Làm thế nào về chiều dài? –

+2

2083 là trình duyệt được hỗ trợ tối đa bởi IE, đây là trình duyệt hạn chế nhất trong số các trình duyệt chính. Nhưng họ không nói rõ ràng đó là mã hóa trước hay sau URL ... –

+1

Vì vậy? Chiều dài mà bạn đề nghị là bao nhiêu? –

10

Bạn có đang lưu trữ các URL đa ngôn ngữ không? Nếu vậy, hãy sử dụng nvarchar, nếu không hãy sử dụng varchar.

Edit: Đối với chiều dài, since IE limits URLs to being 2,083 characters bạn có thể sử dụng như là chiều dài tối đa của lĩnh vực của bạn. Trong những trường hợp như thế này, bạn muốn sử dụng mẫu số chung thấp hơn vì URL của bạn có thể sử dụng được trong tất cả các trình duyệt. Thực sự đây là một nắp thực tế trên một lĩnh vực mà rất có thể sẽ không bao giờ chứa dữ liệu sẽ nhận được bất cứ nơi nào gần ngay cả giới hạn của IE.

+0

Một trong những cách sử dụng sẽ dành cho URL OpenID, vì vậy URL sẽ được mở cho bất kỳ URL hợp lệ nào. –

+1

Sau đó sử dụng nvarchar. –

+1

Làm thế nào về chiều dài? –

3

Đối với một cái gì đó như thế tôi luôn luôn sai lầm về mặt thận trọng và sử dụng nvarchar.

+1

Làm thế nào về chiều dài? –

+0

Phụ thuộc vào URL đang lưu trữ. Nếu tôi chỉ sử dụng nó để trỏ đến các trang web khác, tôi thường sẽ làm cho nó 300 ký tự. Nếu tôi sẽ sử dụng nó để chỉ sâu hơn vào một trang web hoặc như các liên kết đến các tệp, v.v., tôi thường đi với 2000. Tôi chưa bao giờ gặp phải tình huống mà URL chạy nhiều hơn nhiều ký tự (hoặc thậm chí gần nó), nhưng một lần nữa tôi luôn luôn sai lầm về mặt thận trọng. Ổ đĩa không gian là khá rẻ ngày nay và tôi không quan tâm đến bản thân mình gần như nhiều với không gian hạn chế như tôi đã từng làm. – BBlake

2

Đối với SQL Server, bạn sẽ muốn sử dụng NVARCHAR Tôi đã nghĩ, vì có các kế hoạch (nếu không hành động đã) bắt đầu cho các ký tự không phải La Mã trong các URL. Tôi thực sự không thể thấy bất kỳ vấn đề nào trong những ngày này trong các yêu cầu lưu trữ bổ sung cho NVARCHAR trên VARCHAR.

+1

Làm thế nào về chiều dài? –

+0

Andrew Hare đã nói gì :) –

Các vấn đề liên quan