forked from openlp/openlp
843774aa1d
Removed the unnecessarily hardcoded path in the Bible Manager. Changed the SongFormat file to reflect what's really gonna happen in the song database. Added the first sentence of the Plugin Developer's Guide. bzr-revno: 186
125 lines
2.6 KiB
Plaintext
125 lines
2.6 KiB
Plaintext
openlp.org 2.x Song Database Structure
|
|
========================================================================
|
|
|
|
Introduction
|
|
------------
|
|
The song database in openlp.org 2.x is similar to the 1.x format. The
|
|
biggest differences are the addition of extra tables, and the use of
|
|
SQLite version 3.
|
|
|
|
The song database contains the following tables:
|
|
- authors
|
|
- authors_songs
|
|
- song_books
|
|
- songs
|
|
- songs_topics
|
|
- topics
|
|
|
|
|
|
"authors" Table
|
|
---------------
|
|
This table holds the names of all the authors. It has the following
|
|
columns:
|
|
|
|
* id
|
|
* first_name
|
|
* last_name
|
|
* display_name
|
|
|
|
|
|
"authors_songs" Table
|
|
---------------------
|
|
This is a bridging table between the "authors" and "songs" tables, which
|
|
serves to create a many-to-many relationship between the two tables. It
|
|
has the following columns:
|
|
|
|
* author_id
|
|
* song_id
|
|
|
|
|
|
"song_books" Table
|
|
------------------
|
|
The "song_books" table holds a list of books that a congregation gets
|
|
their songs from, or old hymnals now no longer used. This table has the
|
|
following columns:
|
|
|
|
* id
|
|
* name
|
|
* publisher
|
|
|
|
|
|
"songs" Table
|
|
-------------
|
|
This table contains the songs, and each song has a list of attributes.
|
|
The "songs" table has the following columns:
|
|
|
|
* id
|
|
* song_book_id
|
|
* title
|
|
* lyrics
|
|
* verse_order
|
|
* copyright
|
|
* comments
|
|
* ccli_number
|
|
* song_number
|
|
* theme
|
|
* search_title
|
|
* search_lyrics
|
|
|
|
|
|
"songs_topics" Table
|
|
--------------------
|
|
This is a bridging table between the "songs" and "topics" tables, which
|
|
serves to create a many-to-many relationship between the two tables. It
|
|
has the following columns:
|
|
|
|
* song_id
|
|
* topic_id
|
|
|
|
|
|
"topics" Table
|
|
--------------
|
|
The topics table holds a selection of topics that songs can cover. This
|
|
is useful when a worship leader wants to select songs with a certain
|
|
theme. This table has the following columns:
|
|
|
|
* id
|
|
* name
|
|
|
|
|
|
The lyrics definition (more or less similar to interformat to/from ChangingSong
|
|
The tags <i></i><b></b><u></u> can also be used within the lyrics test.
|
|
|
|
! Please note that this format has been checked at http://validator.w3.org/#validate_by_upload
|
|
|
|
<lyrics lang="en_US">
|
|
<title>Amazing Grace</title>
|
|
<verse name="v1">
|
|
<theme>name of verse specific theme (optional)</theme>
|
|
<comment>any text (optional)</comment>
|
|
<part name="men">
|
|
Amazing grace, how ...
|
|
</part>
|
|
<part name="women">
|
|
A b c
|
|
D e f
|
|
</part>
|
|
...
|
|
</verse>
|
|
<verse name="c">
|
|
<theme>name of verse specific theme (optional)</theme>
|
|
<comment>any text (optional)</comment>
|
|
...
|
|
</verse>
|
|
</lyrics>
|
|
<lyrics lang="de_DE">
|
|
<title>Erstaunliche Anmut</title>
|
|
<verse name="v1">
|
|
Erstaunliche Anmut, wie
|
|
...
|
|
</verse>
|
|
<verse name="c">
|
|
...
|
|
</verse>
|
|
</lyrics>
|