2011-01-14 73 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

相關問題