2011-01-14 152 views
18

我在找的是表名和相应的字段/类型的细分。在SQL中存储圣经的最佳方式是什么?

圣经我想存储将是英语,并且需要支持以下内容:

  • 书籍
  • 节的标题(可节内和之间的诗句出现)
  • 小型大写字母文本
  • 红字文本
  • 诗数字
  • 脚注(可节内和章节标题中显示出来)(可任选引用另一首诗)
  • 交叉引用(本质上是一个脚注只引用另一首诗,不添加任何评论)
  • 别的我”中号遗忘
+3

SQL不是最好的办法。 – 2011-01-14 04:04:35

+0

听起来更像你需要一个体面的文字处理器或桌面出版系统。 – 2011-01-14 04:07:55

+0

什么是最好的方式来做网页呢? – 2011-01-14 04:12:04

回答

7

而不是重新发明轮子,你可能会考虑使用“圣经SDK”,如AV Bible,存储文本,格式,诗句号码等在一个开放的,定制的二进制格式。

我认为他们有你所列出除交叉引用的一切。

+0

我该如何在网上使用这样的东西?我需要用服务器端语言创建自己的类,以便能够查询这样的二进制文件吗?或者应该为网络使用某种不同的解决方案? – 2011-01-14 05:17:27

0

马克Rushakoff的答案很可能是最适合你的特定需求。但更普遍的是,如果需要存储在内容中有数据的内容,或者如果您需要存储有关内容的数据,则通常使用Content Management System。你可以建立自己的(WernerCD的答案有一个表结构)或使用CMS product。这里的列表显示了使用的各种技术(本列表中大约30个使用MySQL)

1

一切WernerCD的答案,但存储verseText为XML,所以你可以添加格式化标签,如<red>e.g. Red Text</red>,并使用标签格式化在您的应用

9

这里是另一个集合/例子给你:

https://github.com/scrollmapper/bible_databases

在这里你会看到SQL,XML,CSV和JSON。特别值得一提的是交叉引用表(相当广泛和令人惊叹)以及一个用于快速查询的简单诗歌系统。

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

7

SQL是存储该届最佳途径。考虑到您的要求,我们可以将它们分成两个主要部分

  1. 信息这依赖于个别版本

    • 小盘股
    • 红字印刷
  2. 的信息,是不是取决于个人版本

    • 书,章诗数字
    • 栏目标题
    • 脚笔记(??????)
    • 交叉参考
    • 评论

对于我喜欢各种原因将整个圣经项目存储到一个SINGLE表中,可以称之为bible

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

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`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`) 
) 

哦,那么小帽和红色字母呢?

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

仅供参考,你可以从下面下载SQL后,在你的方式

Bibles in JSON & XML

Bibles in SQL format

相关问题