Какова наилучшая практика для ссылки на записи в строке SQL

#sql #postgresql

#sql #postgresql

Вопрос:

У меня есть первая таблица с информацией о книге

 | id |  title | description |
-----------------------------
|  1 | 'Dune' | 'some text' |
  

У меня есть вторая таблица с библиографической информацией в виде текста

 | authorId |                  bibliography                   |
--------------------------------------------------------------
|     7    | 'Frank Herbert's seminal work, Dune, was ...'   |
  

Я намерен отобразить биографическую информацию на веб-странице и хочу знать, что названия книг являются ссылками, чтобы я мог создавать текст при наведении курсора. Например, при чтении Frank Herbert's seminal work, Dune, was слово Dune должно отображаться в виде синего текста, который при наведении курсора мыши отобразит description текст для Dune из первой таблицы выше.

Я не очень хорошо разбираюсь в SQL, и мне было интересно, есть ли для этого надлежащий метод определения. Я думал о чем-то подобном для строки биографии:

Frank Herbert's seminal work, [[book title=Dune]]Dune[[/book]], was ...

Затем извлекать любые ссылки, в данном случае ссылку на книгу, при извлечении данных. Я мог бы использовать этот метод, чтобы переписать строку как HTML.

Я понимаю, что одним из вариантов является сохранение библиографической информации в виде HTML, но я намереваюсь использовать эту базу данных более широко и не хочу предполагать, как будет использоваться информация о поле. Кто-нибудь может сказать мне, какова наилучшая практика для выполнения чего-то подобного?

Комментарии:

1. Вы можете хранить свой текст в формате XML и иметь свой собственный тег для связывания и, возможно, в будущем поддерживать новые теги для форматирования, такие как paragraph, bold, italic, itemlist, ссылка на изображение. С помощью XSLT вы можете преобразовать его в HTML или другой формат представления. В качестве ссылочного ключа я бы использовал уникальный ключ, такой как ваш id или ISBN (будет ли только одна книга под названием «Дюна»?)

2. Отличная идея @Confusion, спасибо. Это надуманный пример, который не представляет данные, которые я буду использовать, поэтому я не слишком задумывался о фактической ссылке. В этом случае ISBN был бы намного лучше, и, несмотря на это, я позабочусь о том, чтобы он был уникальным.

3. ISBN не является хорошим ключом для книги. Dune в твердом переплете и мягкой обложке имеют разные ISBN, как, конечно, отпечатки от разных издателей (переводы и т. Д.). Но добавьте внешний ключ authorId в свою book таблицу, чтобы вы могли связать их, если только вы не планировали более сложную систему.