2011-01-14 20 views
18

Lo que estoy buscando es un desglose de los nombres de tabla con los campos/tipos correspondientes.¿Cuál es la mejor manera de almacenar la Biblia en SQL?

La biblia Quiero guardar estará en Inglés y tiene que apoyar lo siguiente:

  • Libros
  • capítulos
  • Sección Títulos (puede aparecer dentro de versos y en el medio versos)
  • SmallCaps texto
  • Red Letter texto
  • números de los versículos
  • Notas al pie (puede aparecer dentro de versos y dentro títulos de las secciones) (opcionalmente puede hacer referencia a otro verso)
  • Las referencias cruzadas (esencialmente una nota al pie que sólo hace referencia a otro verso y no añade ningún comentario)
  • Algo más que' estoy olvidando
+3

SQL no es la mejor manera de hacerlo. –

+0

Suena más como si necesitaras un procesador de texto decente o un sistema de autoedición. –

+0

¿Cuál es la mejor manera de hacerlo para la web, entonces? –

Respuesta

7

vez de reinventar la rueda, es posible considerar el uso de un "SDK Biblia" como AV Bible, que almacena texto, el formato, los números de verso, etc., en un formato abierto, binario personalizado.

Creo que tienen todo lo que has enumerado, excepto las referencias cruzadas.

+0

¿Cómo podría usar algo como esto para la web? ¿Tendría que hacer mi propia clase en un lenguaje del lado del servidor que pudiera consultar ese archivo binario? ¿O debería usarse algún tipo de solución diferente para la web? –

+0

@John: Todavía no he visto la Biblia AV en profundidad. La [página SDK] (http://www.avbible.net/pageSDK/pageSDK.html) ofrece el código C++ y C# de ejemplo; Sospecho que solo ofrecen el archivo binario real, así que lo más probable es que incluyas su código C# de ejemplo si estás usando un servidor .NET, o generalmente copias las clases C# a PHP o Ruby (o lo que sea)) clase. En cualquier caso, el archivo binario debería ser suficiente (y si quería una traducción diferente, ese formato debería ser un excelente punto de partida). –

+0

SDK generalmente no son binarios. –

0

La respuesta de Mark Rushakoff es probablemente la mejor para su necesidad específica. Sin embargo, en general, si necesita almacenar contenido que tenga datos dentro del contenido o si necesita almacenar datos sobre el contenido, generalmente se usa Content Management System. Puedes construir el tuyo propio (para el cual la respuesta de WernerCD tenía una estructura de tabla) o usar un CMS product. La lista muestra la gran variedad de tecnologías utilizadas (alrededor de 30 en esta lista usan MySQL)

1

Todo lo que WernerCD responde, pero almacena el versículoTexto como xml para que pueda agregar etiquetas de formato como <red>e.g. Red Text</red> y use las etiquetas para formatearlo en su aplicación

9

Aquí es otra colección/ejemplo para usted:

https://github.com/scrollmapper/bible_databases

Aquí verá SQL, XML, CSV y JSON. De especial interés es la tabla de referencia cruzada (bastante extensa y sorprendente) y un sistema de identificación de verso simple para consultas rápidas.

EDITAR: Observe que los identificadores de las tablas son combinaciones libro-capítulo-verso, siempre únicos.

+0

descubrió que se trata de una fuente confiable hasta el momento, se actualizará si encuentro problemas, existen otras fuentes confiables, como la espada de alambre cruzado (use https://github.com/danday74/sword-to-json para convertir a JSON) y opensong y biblehub: todas las demás fuentes que he encontrado hasta ahora contienen errores en su contenido, pasé mucho tiempo filtrando a través de todas las fuentes disponibles, las API son a menudo confiables pero prefiero no confiar en un servicio web – danday74

2

También encontré http://www.lyricue.org/downloads/ que incluye varias traducciones de la Biblia en formato mysql.

+0

donde están las descargas de la Biblia , no puedo verlos en ningún lado, gracias por el enlace por cierto – danday74

7

SQL es la mejor manera de almacenar esto.Teniendo en cuenta el requisito de que las puede dividir en dos partes principales

  1. información que es dependiente de versión individual

    • Versales
    • carta Red de impresión
  2. información que no se Depende de la versión individual

    • libro, capítulo, los números del verso
    • Sección título
    • Las notas al pie (??????)
    • Referencia cruzada
    • Comentario

Por diversas razones que prefiero para almacenar todo el proyecto de la Biblia en una sola tabla, sí, llámalo como bible

Para su visual aquí está mi pantalla He almacenado casi 15 versiones de Biblia en una sola tabla. Afortunadamente, los nombres de las versiones diferentes simplemente se mantienen en toda la columna. Entonces, cuando agregas más versiones en el futuro, tu tabla crece horizontalmente, lo que está bien, así el número de filas permanece constante (31102). También le pediré que se de cuenta de la conveniencia de mantener la combinación de ('Libro, Capítulo, Verso') como la tecla PRIMARIO porque en la mayoría de las situaciones esa es la forma de búsqueda.

enter image description here

Dicho esto aquí es mi estructura de la tabla recomendada.

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

Oh, ¿Qué pasa con las pequeñas tapas y las letras rojas?

Bien, Small caps & Letras rojas que puede almacenar en columnas de la versión usando HTML o formatos apropiados. En la interfaz puede quitarlos en función de la elección del usuario, ya sea que requiera letras rojas o letras pequeñas.

Como referencia se puede descargar el LSQ desde abajo y personalizar en su camino

Bibles in JSON & XML

Bibles in SQL format

+0

El sitio vinculado está caído. Alguien sabe de algún espejo? – Nilpo

+0

+1 para una respuesta concisa. También es la forma en que lo hago, excepto diferentes biblias en diferentes tablas. No había pensado en fusionarlos a todos. A excepción de mi KJV, por ejemplo, tengo 'libro, capítulo, verso, contenido, en-rojo' - El' en-rojo' es la versión formateada de 'contenidos' que selecciono a través de COALESCE (' in-red', 'contents') por lo que elige el que tiene datos. – Chud37

0

Este repositorio contiene toda la Biblia da en SQL.

https://github.com/godlytalias/Bible-Database

+0

Por favor, publique una respuesta en lugar de un enlace ... –

+1

enlace interesante, pero después de investigar esto, encontré que los datos contenían corrupciones - find https://github.com/scrollmapper/bible_databases para ser más confiable – danday74

Cuestiones relacionadas