Подтвердить что ты не робот

Какой лучший способ сохранить Библию в SQL?

То, что я ищу, это разбивка имен таблиц с соответствующими полями/типами.

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

  • Книги
  • Главы
  • Заголовки разделов (могут отображаться в стихах и между стихами)
  • Smallcaps Text
  • Красный текст письма
  • Номера стилей
  • Сноски (могут отображаться в стихах и в заголовках разделов) (возможно, могут ссылаться на другой стих)
  • Перекрестные ссылки (в основном сноска, которая ссылается только на другой стих и не добавляет комментариев)
  • Что-то еще забываю
4b9b3361

Ответ 1

Вместо того, чтобы изобретать колесо, вы можете использовать "Библейский SDK", например Библия AV, в которой хранятся текст, форматирование, номера стихов и т.д. в открытом, пользовательском двоичном формате.

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

Ответ 2

Вот вам другая коллекция/пример:

https://github.com/scrollmapper/bible_databases

Здесь вы увидите SQL, XML, CSV и JSON. Особо следует отметить таблицу перекрестных ссылок (довольно обширную и потрясающую) и простую систему стихотворений для быстрых запросов.

EDIT: Обратите внимание, что идентификаторы таблиц являются комбинациями книг и стилей, всегда уникальными.

Ответ 3

SQL - ЛУЧШИЙ способ сохранить это. Учитывая ваши требования, мы можем разделить их на две основные части

  1. Информация, которая зависит от отдельной версии

    • Маленькие шапки
    • Красная печать письма
  2. Информация, которая не зависит от отдельной версии

    • Книга, Глава, Стихи
    • Название раздела
    • Фут заметки (??????)
    • Перекрестная ссылка
    • Комментарий

По разным причинам я предпочитаю хранить весь библейский проект в одной ОДНОЙ таблице, да называть его 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)