Как хранить URL-адреса в таблице? - PullRequest
1 голос
/ 05 ноября 2008

Я думаю, что тип поля должен быть строкой переменной длины (VARCHAR), но какую длину я должен использовать?

Чтобы уточнить: я хочу выбрать размер, который мог бы хранить средний URL, и не особо заботился о максимально возможном.

Ответы [ 6 ]

2 голосов
/ 05 ноября 2008

для I.E. ограничение составляет 2,083 символов

Похоже, что большинство других браузеров не имеют такого ограничения, но если предполагается, что URL-адреса совместимы со всеми браузерами, я бы предложил 2083 символа.

1 голос
/ 05 ноября 2008

Хотя браузеры поддерживают URL-адреса с тысячами символов, это редкость, и вы сами сказали, что хотите иметь возможность хранить средний URL-адрес. Длина вашего поля будет зависеть от того, что вы ожидаете быть в среднем. Вы собираетесь в первую очередь хранить «домашние страницы» (как в профилях пользователей)? Или это будут URL-адреса, дающие глубокую ссылку на контент сайта с длинными путями и / или строками запроса - в основном любой URL?

Если это последний (любой URL-адрес), то укажите номер 2083, указанный в ответах на этот вопрос. Имейте в виду, что максимальный размер строки в SQL Server составляет примерно 8000 байт. Если это та же таблица, что и куча другой информации (опять же, например, профили пользователей), вы можете достичь этого предела.

Для моих собственных проектов обычно существует больше контекста относительно того, какие URL будут храниться. Я обычно придумываю список потенциальных URL-адресов и выбираю длину, которая будет соответствовать всем этим, а затем удваиваю ее. У меня обычно получается длина поля 300 или 500 для URL, и я не помню, чтобы когда-либо возникали проблемы.

1 голос
/ 05 ноября 2008

Похоже, вам нужна длина не менее 190 000, если вы хотите поддерживать все современные браузеры. Нажмите здесь для подробностей.

Тем не менее, я думаю, что у вас все будет в порядке с 2000. Если клиент введет более длинный URL, чем этот, вы можете обвинить его в ошибке, и он на самом деле будет чувствовать себя виноватым за то, что сделал это. :)

1 голос
/ 05 ноября 2008

Размер, чтобы соответствовать разрешенной длине запроса GET. скажем 2048 (то есть макс. IE) http://www.boutell.com/newfaq/misc/urllength.html

На заметку, если какой-либо из этих URL-адресов является букмарклетами javascript;

javascript:var foo='bar';...alert('Hello World');

Существует ограничение в 508 символов в IE для пользователя, если они пытаются добавить его в избранное.

0 голосов
/ 22 января 2009

Вы должны использовать текст, поскольку varchar может иметь длину всего 255 символов. длина текста может быть 65536 символов.

0 голосов
/ 05 ноября 2008

Зависит от самих URL.

Если вы работаете с очень длинными URL-адресами, такими как http://dsddsadashf.fsdfs.fd/fsdfsdfs/dfsdfsdfdsf/ssssdfsdfsd/sdfsdfsdfsd?fsdfsdfsdf=fdfsfsdfs&fsdfsdfsdfsdfs;jsessionid=sdasdsadasdasdfsdvhbdkvhjkdvhsk, вы можете рассмотреть поле CLOB;)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...