在SQL中存储圣经的最佳方法是什么?

Joh*_*lak 20 mysql sql database-design

我正在寻找的是具有相应字段/类型的表名的细分.

我要存储的圣经将使用英语,需要支持以下内容:

  • 图书
  • 章节标题(可以出现在经文和经文之间)
  • Smallcaps Text
  • 红字文本
  • 诗歌数字
  • 脚注(可以在诗句内和章节标题内显示)(可以选择引用另一节经文)
  • 交叉引用(基本上是一个脚注,仅引用另一节经文而不添加任何评论)
  • 还有别的我忘了

neh*_*iah 10

SQL是存储它的最佳方式.考虑到您的要求,我们可以将它们分成两个主要部分

  1. 信息取决于个人版本

    • 小帽子
    • 红色字母打印
  2. 不依赖于个人版本的信息

    • 书,章,诗数
    • 章节标题
    • 脚注(??????)
    • 交叉参考
    • 评论

出于各种原因,我更喜欢将整个圣经项目存储到一个SINGLE表中,是的称之为 bible

对于你的视觉,这里是我的屏幕,我已经在单个表中存储了近15个版本的圣经.幸运的是,不同的版本名称只是作为列宽保存.因此,当您将来添加更多版本时,您的表会水平增长,这是可以的,因此行数保持不变(31102).此外,我将要求您意识到将('Book,Chapter,Verse')组合作为PRIMARY键的便利性,因为在大多数情况下这是查找方式.

在此输入图像描述

这就是我推荐的表结构.

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`s 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`)
) 
Run Code Online (Sandbox Code Playgroud)

哦,小帽子和红色字母怎么样?

好吧,小型大写和红色字母,您可以使用HTML或适当的格式存储在版本列中.在界面中,您可以根据用户的选择将其剥离,无论他是否需要红色字母或小型大写字母.

作为参考,您可以从下面下载SQL并以您的方式自定义

JSON和XML中的圣经

SQL格式的圣经

  • 链接的网站已关闭。有谁知道有镜子吗? (2认同)

Ora*_*555 9

这是您的另一个集合/示例:

https://github.com/scrollmapper/bible_databases

在这里,您将看到SQL,XML,CSV和JSON.特别值得注意的是交叉引用表(相当广泛和令人惊叹)和一个简单的verse-id系统,用于快速查询.

编辑:请注意,表格的ID是书本章节组合,始终是唯一的.


Mar*_*off 8

您可以考虑使用诸如AV Bible之类的"Bible SDK",而不是重新发明轮子,它以开放的自定义二进制格式存储文本,格式,经文数字等.

我认为他们拥有你列出的所有东西,除了交叉引用.