Есть ли способ сокращения URL в Java для удобного хранения в базах данных - PullRequest
2 голосов
/ 25 октября 2010

У меня есть требование, когда пользователь в качестве вложения может добавить ссылку из sharepoint, чтобы мы могли сохранить ссылку [путь] вложения вместо фактического вложения.Для этого мы планируем спроектировать колонку varchar (512).По сути, мы думали, что это будет эффективно соответствовать любому типу URL, но иногда мы обнаруживали, что это слишком сложно для сохранения в базах данных.Мои баллы:

  1. Это правильный дизайн.
  2. Мы планировали использовать TinyURL.com, но мы не можем гарантировать, что у всех пользователей есть Интернет (целевые пользователи в org могут или не могут получить доступИнтернет).Поэтому исключил эту опцию.
  3. Предоставляет ли java какой-либо API для сокращения URL-адресов.

Заранее спасибо

Ответы [ 2 ]

4 голосов
/ 25 октября 2010

Как правило, URL не могут быть сокращены без удаления полезной информации. Такие службы, как TinyURL.com, поддерживают базу данных сопоставлений «короткий URL» и «полный URL». Если вы хотите сократить URL-адреса, вам нужно реализовать что-то подобное самостоятельно, поэтому в любом случае для хранения этого отображения потребуется отдельная таблица. Вы бы просто перенесли проблему в другое место.

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

2 голосов
/ 25 октября 2010

Любой API - это интерфейс к приложению, поэтому за этим API должно быть приложение, которое сохраняет отображение из сокращенной ссылки в исходную ссылку.Для этого вам понадобится таблица с двумя столбцами, один из которых содержит более 512 символов.

Короче говоря, вы просто добавите еще один элемент сложности только для обхода текущей схемы базы данных.Почему бы просто не адаптировать схему существующего приложения, чтобы она содержала более 512 символов?Мне кажется, это наиболее подходящее изменение, если ваши ссылки могут быть длиной более 512 символов.

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