Какой лучший способ сохранить Библию в SQL?
То, что я ищу, это разбивка имен таблиц с соответствующими полями/типами.
Библия, которую я хочу сохранить, будет на английском языке и должна поддерживать следующее:
- Книги
- Главы
- Заголовки разделов (могут отображаться в стихах и между стихами)
- Smallcaps Text
- Красный текст письма
- Номера стилей
- Сноски (могут отображаться в стихах и в заголовках разделов) (возможно, могут ссылаться на другой стих)
- Перекрестные ссылки (в основном сноска, которая ссылается только на другой стих и не добавляет комментариев)
- Что-то еще забываю
Ответы
Ответ 1
Вместо того, чтобы изобретать колесо, вы можете использовать "Библейский SDK", например Библия AV, в которой хранятся текст, форматирование, номера стихов и т.д. в открытом, пользовательском двоичном формате.
Я думаю, что у них есть все, что вы указали, кроме перекрестных ссылок.
Ответ 2
Вот вам другая коллекция/пример:
https://github.com/scrollmapper/bible_databases
Здесь вы увидите SQL, XML, CSV и JSON. Особо следует отметить таблицу перекрестных ссылок (довольно обширную и потрясающую) и простую систему стихотворений для быстрых запросов.
EDIT: Обратите внимание, что идентификаторы таблиц являются комбинациями книг и стилей, всегда уникальными.
Ответ 3
SQL - ЛУЧШИЙ способ сохранить это. Учитывая ваши требования, мы можем разделить их на две основные части
-
Информация, которая зависит от отдельной версии
- Маленькие шапки
- Красная печать письма
-
Информация, которая не зависит от отдельной версии
- Книга, Глава, Стихи
- Название раздела
- Фут заметки (??????)
- Перекрестная ссылка
- Комментарий
По разным причинам я предпочитаю хранить весь библейский проект в одной ОДНОЙ таблице, да называть его bible
Для вашего наглядного представления - мой экран. Я сохранил около 15 версий Библии в одной таблице. К счастью, имена разных версий просто сохраняются в виде столбцов. Когда вы добавите больше версий в будущем, ваша таблица будет расти горизонтально, что нормально, поэтому количество строк остается постоянным (31102). Кроме того, я попрошу вас осознать удобство хранения комбинации ("Книга, Глава, Стих") в качестве ПЕРВИЧНОГО ключа, потому что в большинстве ситуаций это поиск.
![enter image description here]()
Тем не менее, вот моя рекомендуемая структура таблицы.
CREATE TABLE IF NOT EXISTS 'bible' (
'id' int(11) NOT NULL AUTO_INCREMENT, --Global unique number or verse
'book' varchar(25) NOT NULL, --Book, chapter, verse is the combined primary key
'chapter' int(11) NOT NULL,
'verse' int(11) NOT NULL,
'section_title' varchar(250) NOT NULL, -- Section title, A section starts from this verse and spans across following verses until it finds a non-empty next section_title
'foot_note' varchar(1000) NOT NULL, -- Store foot notes here
'cross_reference' int(11) NOT NULL, -- Integer/Array of integers, Just store 'id of related verses
'commentary' text NOT NULL, -- Commentary, Keep adding more columns based on commentaries by difference authors
'AMP' text NOT NULL, -- Keep, keep, keep adding columns and good luck with future expansion
'ASV' text NOT NULL,
'BENG' text NOT NULL,
'CEV' text NOT NULL,
PRIMARY KEY ('book','chapter','verse'),
KEY 'id' ('id')
)
О, а как насчет маленьких заглавных букв и красных букв?
Ну, маленькие заглавные буквы и красные буквы вы можете хранить в колонках версий, используя HTML или соответствующие форматы. В интерфейсе вы можете удалить их в зависимости от выбора пользователя, требует ли он красной буквы или маленьких заглавных букв.
Для справки, вы можете скачать SQL ниже и настроить по-своему
Библии в формате SQL
Ответ 4
Я также нашел http://www.lyricue.org/downloads/, который включает в себя несколько библейских переводов в формате mysql.
Ответ 5
Все, что отвечает WernerCD, но сохраните verseText в формате xml, чтобы вы могли добавить теги форматирования, такие как <red>eg Red Text</red>
и использовать теги для форматирования в вашем приложении
Ответ 6
Ответ Марку Рушакова, вероятно, является лучшим для вас конкретной потребностью. Однако в более общем случае, если необходимо хранить контент, который либо имеет данные в контенте, либо если вам нужно хранить данные о контенте, то Система управления контентом обычно используемый. Вы можете создать свой собственный (для ответа WernerCD была структура таблицы) или использовать продукт CMS. Список здесь показывает широкий спектр используемых технологий (около 30 в этом списке используют MySQL)
Ответ 7
Этот репозиторий содержит всю Библию, указанную в sql.
https://github.com/godlytalias/Bible-Database