updated acqfest4 serials schema
authormiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 9 Jul 2008 01:18:57 +0000 (01:18 +0000)
committermiker <miker@dcc99617-32d9-48b4-a31d-7c20da2025e4>
Wed, 9 Jul 2008 01:18:57 +0000 (01:18 +0000)
git-svn-id: svn://svn.open-ils.org/ILS/branches/acq-experiment@9997 dcc99617-32d9-48b4-a31d-7c20da2025e4

Open-ILS/src/sql/Pg/210.schema.serials.sql

index 7356217..56a4391 100644 (file)
 
-DROP SCHEMA serials CASCADE;
 
-BEGIN;
-
-CREATE SCHEMA serials;
+DROP SCHEMA serial CASCADE;
 
-CREATE TABLE serials.serial (
-       id              SERIAL                          PRIMARY KEY,
-       creator         INT                             NOT NULL REFERENCES actor.usr (id),
-       create_date     TIMESTAMP WITH TIME ZONE        NOT NULL DEFAULT NOW()
-       record          BIGINT                          REFERENCES biblio.record_entry (id),
-       marc            TEXT                            NOT NULL,
-       language        TEXT                            NOT NULL REFERENCES config.language_map (code) DEFAULT 'eng',
-       cn_label        TEXT                            NOT NULL
+CREATE TABLE asset.uri (
+       id      SERIAL  PRIMARY KEY,
+       href    TEXT    NOT NULL,
+       label   TEXT,
+       use     TEXT,
+       active  BOOL    NOT NULL DEFAULT TRUE
 );
 
-CREATE TABLE serials.picklist_entry_attr (
-       id              BIGSERIAL       PRIMARY KEY,
-       serial          BIGINT          NOT NULL REFERENCES serials.serial (id) ON DELETE CASCADE,
-       attr_type       TEXT            NOT NULL,
-       attr_name       TEXT            NOT NULL,
-       attr_value      TEXT            NOT NULL
-);
+ALTER TABLE asset.call_number ADD COLUMN uri INT REFERENCES asset.uri (id);
 
+BEGIN;
 
-CREATE TABLE serials.subscription (
-       id              SERIAL                          PRIMARY KEY,
-       serial          BIGINT                          NOT NULL REFERENCES serials.serial (id) ON DELETE CASCADE,
-       creator         INT                             NOT NULL REFERENCES actor.usr (id),
-       create_date     TIMESTAMP WITH TIME ZONE        NOT NULL DEFAULT NOW(),
-       owner           INT                             NOT NULL REFERENCES actor.org_unit (id),
-       claim_interval  INTERVAL                        NOT NULL DEFAULT '1 month'
-);
+CREATE SCHEMA serial;
 
-CREATE TABLE serials.chronology (
-       id              SERIAL                          PRIMARY KEY,
-       creator         INT                             NOT NULL REFERENCES actor.usr (id),
-       create_date     TIMESTAMP WITH TIME ZONE        NOT NULL DEFAULT NOW()
-       subscription    INT                             NOT NULL REFERENCES serials.subscription (id)
+CREATE TABLE serial.subscription (
+       id              SERIAL  PRIMARY KEY,
+       callnumber      BIGINT  REFERENCES asset.call_number (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
+       uri             INT     REFERENCES asset.uri (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
+       start_date      DATE    NOT NULL,
+       end_date        DATE    NOT NULL
 );
 
-CREATE TABLE serials.enumeration_caption (
-       id      SERIAL  PRIMARY KEY,
-       name    TEXT    NOT NULL UNIQUE,
-       value   TEXT
+CREATE TABLE serial.binding_unit (
+       id              SERIAL  PRIMARY KEY,
+       subscription    INT     NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+       label           TEXT    NOT NULL,
+       CONSTRAINT bu_label_once_per_sub UNIQUE (subscription, label)
 );
 
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('Abteilung','Abt.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('number,-s','no.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('Band','Bd.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('numero (French)','no');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('book','bk.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('numero (Italian)','n.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('deel','d.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('Nummer','Nr.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('edition','ed.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('nummer','nr.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('editions','eds.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('page, pages','p.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('facsimile','facsim.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('part','pt.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('facsimiles','facsims.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('parts','pts.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('fascicle','fasc.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('partie','ptie');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('Jahrgang','Jahrg.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('parties','pties');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('Lieferung','Lfg.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('series','ser.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('neue Folge','n.F.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('supplement','suppl.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('new series','n.s.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('Teil, Theil','T.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('nouveau','nouv.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('tome','t.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('nouvelle','nouv.');
-INSERT INTO serials.enumeration_caption (name,value) VALUES ('volume,-s','v.');
-
-
-CREATE TABLE serials.enumeration_transformation (
+CREATE TABLE serial.issuance (
        id              SERIAL  PRIMARY KEY,
-       transform       TEXT    NOT NULL
-
-
-CREATE TABLE serials.enumeration (
-       id              SERIAL          PRIMARY KEY,
-       name            TEXT            NOT NULL UNIQUE,
-       caption         INT             NOT NULL REFERENCES serials.enumeration_caption (id),
-       transform       INT             NOT NULL REFERENCES serials.enumeration_transformation (id),
-       extent          INT             NOT NULL,
-       compress        BOOL            NOT NULL DEFAULT FALSE
+       subscription    INT     NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+       target_copy     BIGINT  REFERENCES asset.copy (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+       binding_unit    INT     REFERENCES serial.binding_unit (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+       label           TEXT
 );
 
-CREATE TABLE serials.cycle (
-       id              SERIAL          PRIMARY KEY,
-       name            TEXT            NOT NULL UNIQUE,
-       cycle_interval  INTERVAL        NOT NULL,
-       enumeration     INT             NOT NULL REFERENCES serials.enumeration (id),
-       display_year    BOOL            NOT NULL DEFAULT FALSE,
-       display_month   BOOL            NOT NULL DEFAULT FALSE,
-       display_date    BOOL            NOT NULL DEFAULT FALSE
+CREATE TABLE serial.bib_summary (
+       id                      SERIAL  PRIMARY KEY,
+       call_number             INT     UNIQUE NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+       generated_coverage      TEXT    NOT NULL,
+       textual_holdings        TEXT
 );
 
-CREATE TABLE serials.chrono_segment (
-       id              SERIAL          PRIMARY KEY,
-       cycle           INT             NOT NULL REFERENCES serials.cycle (id),
-       start           DATE            NOT NULL,
-       length          INTERVAL        NOT NULL,
-       redaction       BOOL            NOT NULL DEFAULT FALSE
+CREATE TABLE serial.sup_summary (
+       id                      SERIAL  PRIMARY KEY,
+       call_number             INT     UNIQUE NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+       generated_coverage      TEXT    NOT NULL,
+       textual_holdings        TEXT
 );
 
-CREATE TABLE serials.chronology_projection (
-       id              SERIAL  PRIMARY KEY,
-       subscription    INT     NOT NULL REFERENCES serials.subscription (id),
-       when            DATE    NOT NULL,
+CREATE TABLE serial.index_summary (
+       id                      SERIAL  PRIMARY KEY,
+       call_number             INT     UNIQUE NOT NULL REFERENCES serial.subscription (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
+       generated_coverage      TEXT    NOT NULL,
+       textual_holdings        TEXT
+);
 
+COMMIT;