#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
таблицу, чтобы вы могли связать их, если только вы не планировали более сложную систему.