initial addition of Conifer-sponsored electronic serials support. tests and docs...
[working/Evergreen.git] / Open-ILS / src / sql / Pg / 210.schema.serials.sql
1
2
3 DROP SCHEMA serial CASCADE;
4
5 BEGIN;
6
7 CREATE SCHEMA serial;
8
9 CREATE TABLE serial.subscription (
10         id              SERIAL  PRIMARY KEY,
11         callnumber      BIGINT  REFERENCES asset.call_number (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
12         uri             INT     REFERENCES asset.uri (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
13         start_date      DATE    NOT NULL,
14         end_date        DATE    NOT NULL
15 );
16
17 CREATE TABLE serial.binding_unit (
18         id              SERIAL  PRIMARY KEY,
19         subscription    INT     NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
20         label           TEXT    NOT NULL,
21         CONSTRAINT bu_label_once_per_sub UNIQUE (subscription, label)
22 );
23
24 CREATE TABLE serial.issuance (
25         id              SERIAL  PRIMARY KEY,
26         subscription    INT     NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
27         target_copy     BIGINT  REFERENCES asset.copy (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
28         binding_unit    INT     REFERENCES serial.binding_unit (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
29         label           TEXT
30 );
31
32 CREATE TABLE serial.bib_summary (
33         id                      SERIAL  PRIMARY KEY,
34         call_number             INT     UNIQUE NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
35         generated_coverage      TEXT    NOT NULL,
36         textual_holdings        TEXT
37 );
38
39 CREATE TABLE serial.sup_summary (
40         id                      SERIAL  PRIMARY KEY,
41         call_number             INT     UNIQUE NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
42         generated_coverage      TEXT    NOT NULL,
43         textual_holdings        TEXT
44 );
45
46 CREATE TABLE serial.index_summary (
47         id                      SERIAL  PRIMARY KEY,
48         call_number             INT     UNIQUE NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
49         generated_coverage      TEXT    NOT NULL,
50         textual_holdings        TEXT
51 );
52
53 COMMIT;
54