Solución:
Aquí hay otra colección / ejemplo para ti:
https://github.com/scrollmapper/bible_databases
Aquí verá SQL, XML, CSV y JSON. De especial interés es la tabla de referencias cruzadas (bastante extensa y sorprendente) y un sistema simple de identificación de verso para consultas rápidas.
EDITAR: Observe que los identificadores de las tablas son combinaciones de libro, capítulo y versículo, siempre únicas.
SQL es la MEJOR forma de almacenar esto. Teniendo en cuenta sus requisitos, podemos dividirlos en dos partes principales.
-
Información que depende de la versión individual
- Letras minúsculas
- Impresión de letra roja
-
Información que no depende de la versión individual
- Libro, capítulo, números de versículo
- Sección de título
- Notas al pie (??????)
- Referencia cruzada
- Comentario
Por varias razones, prefiero almacenar todo el proyecto bíblico en una SOLA mesa, sí, llámelo como bible
Para su visual, aquí está mi pantalla. He almacenado casi 15 versiones de la Biblia en una sola tabla. Afortunadamente, los nombres de las diferentes versiones se mantienen como columnas. Cuando agregue más versiones en el futuro, su tabla crece horizontalmente, lo cual está bien, por lo que el número de filas permanece constante (31102). Además, le pediré que se dé cuenta de la conveniencia de mantener la combinación de (‘Libro, Capítulo, Versículo’) como la clave PRIMARIA porque en la mayoría de las situaciones esa es la forma de búsqueda.
Dicho esto, aquí está mi estructura de 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 minúsculas y las letras rojas?
Bueno, las minúsculas y las letras rojas se pueden almacenar en columnas de versión usando HTML o formatos apropiados. En la interfaz, puede eliminarlos según la elección del usuario, ya sea que requiera letras rojas o minúsculas.
Como referencia, puede descargar los SQL desde abajo y personalizarlos a su manera
Biblias en formato SQL
En lugar de reinventar la rueda, podría considerar usar un “SDK de la Biblia” como AV Bible, que almacena texto, formato, números de versículo, etc. en un formato binario personalizado abierto.
Creo que tienen todo lo que ha enumerado, excepto referencias cruzadas.