Joh*_*lak 20 mysql sql database-design
我正在寻找的是具有相应字段/类型的表名的细分.
我要存储的圣经将使用英语,需要支持以下内容:
neh*_*iah 10
SQL是存储它的最佳方式.考虑到您的要求,我们可以将它们分成两个主要部分
信息取决于个人版本
不依赖于个人版本的信息
出于各种原因,我更喜欢将整个圣经项目存储到一个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并以您的方式自定义
这是您的另一个集合/示例:
https://github.com/scrollmapper/bible_databases
在这里,您将看到SQL,XML,CSV和JSON.特别值得注意的是交叉引用表(相当广泛和令人惊叹)和一个简单的verse-id系统,用于快速查询.
编辑:请注意,表格的ID是书本章节组合,始终是唯一的.