database_schema
Differences
This shows you the differences between two versions of the page.
| database_schema [2019/03/24 21:28] – created steve | database_schema [2019/03/24 21:32] (current) – steve | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| ====== Database Schema ====== | ====== Database Schema ====== | ||
| + | |||
| + | ===== PostgreSQL ===== | ||
| + | |||
| + | < | ||
| + | pg_dump scriptures --schema-only --no-owner | ||
| + | </ | ||
| + | |||
| + | < | ||
| + | -- | ||
| + | -- PostgreSQL database dump | ||
| + | -- | ||
| + | |||
| + | SET statement_timeout = 0; | ||
| + | SET lock_timeout = 0; | ||
| + | SET client_encoding = ' | ||
| + | SET standard_conforming_strings = on; | ||
| + | SET check_function_bodies = false; | ||
| + | SET client_min_messages = warning; | ||
| + | |||
| + | -- | ||
| + | -- Name: plpgsql; Type: EXTENSION; Schema: -; Owner: - | ||
| + | -- | ||
| + | |||
| + | CREATE EXTENSION IF NOT EXISTS plpgsql WITH SCHEMA pg_catalog; | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: EXTENSION plpgsql; Type: COMMENT; Schema: -; Owner: - | ||
| + | -- | ||
| + | |||
| + | COMMENT ON EXTENSION plpgsql IS ' | ||
| + | |||
| + | |||
| + | SET search_path = public, pg_catalog; | ||
| + | |||
| + | SET default_tablespace = ''; | ||
| + | |||
| + | SET default_with_oids = false; | ||
| + | |||
| + | -- | ||
| + | -- Name: books; Type: TABLE; Schema: public; Owner: -; Tablespace: | ||
| + | -- | ||
| + | |||
| + | CREATE TABLE books ( | ||
| + | id integer NOT NULL, | ||
| + | volume_id smallint NOT NULL, | ||
| + | book_title character varying(22) DEFAULT '':: | ||
| + | book_long_title character varying(59) DEFAULT '':: | ||
| + | book_subtitle character varying(80) DEFAULT '':: | ||
| + | book_short_title character varying(8) DEFAULT '':: | ||
| + | book_lds_url character varying(6) DEFAULT '':: | ||
| + | ); | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: chapters; Type: TABLE; Schema: public; Owner: -; Tablespace: | ||
| + | -- | ||
| + | |||
| + | CREATE TABLE chapters ( | ||
| + | id integer NOT NULL, | ||
| + | book_id integer NOT NULL, | ||
| + | chapter_number smallint NOT NULL | ||
| + | ); | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: pilcrow; Type: TABLE; Schema: public; Owner: -; Tablespace: | ||
| + | -- | ||
| + | |||
| + | CREATE TABLE pilcrow ( | ||
| + | verse_id integer | ||
| + | ); | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: verses; Type: TABLE; Schema: public; Owner: -; Tablespace: | ||
| + | -- | ||
| + | |||
| + | CREATE TABLE verses ( | ||
| + | id integer NOT NULL, | ||
| + | chapter_id smallint NOT NULL, | ||
| + | verse_number smallint NOT NULL, | ||
| + | scripture_text text DEFAULT '':: | ||
| + | ); | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: volumes; Type: TABLE; Schema: public; Owner: -; Tablespace: | ||
| + | -- | ||
| + | |||
| + | CREATE TABLE volumes ( | ||
| + | id integer NOT NULL, | ||
| + | volume_title character varying(22) DEFAULT '':: | ||
| + | volume_long_title character varying(26) DEFAULT '':: | ||
| + | volume_subtitle character varying(36) DEFAULT '':: | ||
| + | volume_short_title character varying(3) DEFAULT '':: | ||
| + | volume_lds_url character varying(3) DEFAULT '':: | ||
| + | ); | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: scriptures; Type: VIEW; Schema: public; Owner: - | ||
| + | -- | ||
| + | |||
| + | CREATE VIEW scriptures AS | ||
| + | | ||
| + | books.id AS book_id, | ||
| + | chapters.id AS chapter_id, | ||
| + | verses.id AS verse_id, | ||
| + | volumes.volume_title, | ||
| + | books.book_title, | ||
| + | volumes.volume_long_title, | ||
| + | books.book_long_title, | ||
| + | volumes.volume_subtitle, | ||
| + | books.book_subtitle, | ||
| + | volumes.volume_short_title, | ||
| + | books.book_short_title, | ||
| + | volumes.volume_lds_url, | ||
| + | books.book_lds_url, | ||
| + | chapters.chapter_number, | ||
| + | verses.verse_number, | ||
| + | verses.scripture_text, | ||
| + | concat(books.book_title, | ||
| + | concat(books.book_short_title, | ||
| + | FROM (((volumes | ||
| + | JOIN books ON ((books.volume_id = volumes.id))) | ||
| + | JOIN chapters ON ((chapters.book_id = books.id))) | ||
| + | JOIN verses ON ((verses.chapter_id = chapters.id))) | ||
| + | ORDER BY volumes.id, books.id, chapters.id, | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: pkey_books; Type: CONSTRAINT; Schema: public; Owner: -; Tablespace: | ||
| + | -- | ||
| + | |||
| + | ALTER TABLE ONLY books | ||
| + | ADD CONSTRAINT pkey_books PRIMARY KEY (id); | ||
| + | |||
| + | ALTER TABLE books CLUSTER ON pkey_books; | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: pkey_chapters; | ||
| + | -- | ||
| + | |||
| + | ALTER TABLE ONLY chapters | ||
| + | ADD CONSTRAINT pkey_chapters PRIMARY KEY (id); | ||
| + | |||
| + | ALTER TABLE chapters CLUSTER ON pkey_chapters; | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: pkey_verses; | ||
| + | -- | ||
| + | |||
| + | ALTER TABLE ONLY verses | ||
| + | ADD CONSTRAINT pkey_verses PRIMARY KEY (id); | ||
| + | |||
| + | ALTER TABLE verses CLUSTER ON pkey_verses; | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: pkey_volumes; | ||
| + | -- | ||
| + | |||
| + | ALTER TABLE ONLY volumes | ||
| + | ADD CONSTRAINT pkey_volumes PRIMARY KEY (id); | ||
| + | |||
| + | ALTER TABLE volumes CLUSTER ON pkey_volumes; | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: idx_pilcrows; | ||
| + | -- | ||
| + | |||
| + | CREATE UNIQUE INDEX idx_pilcrows ON pilcrow USING btree (verse_id); | ||
| + | |||
| + | ALTER TABLE pilcrow CLUSTER ON idx_pilcrows; | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: fkey_books_volumes; | ||
| + | -- | ||
| + | |||
| + | ALTER TABLE ONLY books | ||
| + | ADD CONSTRAINT fkey_books_volumes FOREIGN KEY (volume_id) REFERENCES volumes(id) ON DELETE CASCADE; | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: fkey_chapters_books; | ||
| + | -- | ||
| + | |||
| + | ALTER TABLE ONLY chapters | ||
| + | ADD CONSTRAINT fkey_chapters_books FOREIGN KEY (book_id) REFERENCES books(id) ON DELETE CASCADE; | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: fkey_verses_chapter; | ||
| + | -- | ||
| + | |||
| + | ALTER TABLE ONLY verses | ||
| + | ADD CONSTRAINT fkey_verses_chapter FOREIGN KEY (chapter_id) REFERENCES chapters(id) ON DELETE CASCADE; | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- Name: public; Type: ACL; Schema: -; Owner: - | ||
| + | -- | ||
| + | |||
| + | REVOKE ALL ON SCHEMA public FROM PUBLIC; | ||
| + | REVOKE ALL ON SCHEMA public FROM postgres; | ||
| + | GRANT ALL ON SCHEMA public TO postgres; | ||
| + | GRANT ALL ON SCHEMA public TO PUBLIC; | ||
| + | |||
| + | |||
| + | -- | ||
| + | -- PostgreSQL database dump complete | ||
| + | -- | ||
| + | </ | ||
| ===== SQLite ===== | ===== SQLite ===== | ||
database_schema.txt · Last modified: by steve
