2016-08-16 3 views
0

У меня есть бесплатный текстовый столбец в базе данных, который должен содержать ссылки на другие объекты в базе данных, такие как определения в приложении. Эта база данных будет кормить систему, такую ​​как CMS.Представление ссылок на другие записи в текстовом столбце базы данных

До сих пор, я могу только думать о двух способах представления ссылок в свободном текстовом поле: формат

  1. уценки: [link](/entries/999)
  2. HTML

Я пропускаю легче решение?

Также существуют способы представления ссылки на запись 999 (например) без жесткого кодирования URL-адреса? Я хочу создать URL-адреса автоматически и сделать содержимое базы данных устойчивым к изменениям в структуре структурированных URL-адресов.

Может быть похожи: How to insert in a database elements with links to other elements?

+0

Вам нужны ссылки на другие таблицы? Или в поля строк таблицы? Или фрагмент текстов внутри полей? И в каком формате изначально это текстовые поля? HTML? – Renzo

+0

Я хочу иметь ссылки на уровне строки.С точки зрения CMS это будет похоже на ссылку на страницу на другую страницу или ссылку на страницу для изображения. Само по себе текстовые поля будут в любом формате разметки, который мне нужен для поддержки этой ссылки. – szxk

+0

Таким образом, ссылка может представлять собой пару первичных ключей строки и имени поля, что-то вроде этого. Это сделает запрос SQL более эффективным. Затем в вашем приложении вы можете перевести эту ссылку в то, что необходимо (html-ссылка, ссылка на уценку и т. Д.). Или, может быть, вы могли бы хранить ссылки отдельно от текстов, в другой таблице, с несколькими атрибутами начальной точки ссылки, конечной точкой ссылки. – Renzo

ответ

0

Я думаю, что для решения проблемы, как это несколько важных моментов следует считать:

  1. Насколько важна эффективность запросов к базе данных (и это зависит на размер базы данных, на частоту запросов, на загрузку по серверу и т. д.)

  2. Какие обновления сделаны для данных: часто ли изменяется текст (страницы)? Эти обновления изменяют ссылки?

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

Если я понял вашу проблему правильно (и я не уверен в этом), всегда необходимо переводить «ссылки» с уровня приложения на уровень базы данных (в противном случае у вас не должно быть особых проблем). Если это так, то я думаю, что у вас есть следующие варианты:

  1. поддерживает связь с «семантикой базы данных»: то есть превратить их в связи с полями через пару значений (первичный ключ записи, имя (или номер) указанного поля). Затем у вас есть два подпараметра: поддерживайте эти ссылки внутри текста или извлекайте их в (под) таблице, содержащей две конечные точки ссылок (начальная точка должна быть чем-то вроде [key of record, name of поле, положение в тексте, где есть ссылка: конечная точка может быть просто [клавиша записи, имя поля]).

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

Чтобы оценить, какой вариант выбрать, чем, следует рассмотреть приведенные выше пункты об эффективности и типах обновлений.