]> git.evergreen-ils.org Git - working/Evergreen.git/blob - Open-ILS/src/sql/Pg/099.matrix_weights.sql
Patch from Jason Stephenson ( LP#770261, https://bugs.launchpad.net/evergreen/+bug...
[working/Evergreen.git] / Open-ILS / src / sql / Pg / 099.matrix_weights.sql
1
2 BEGIN;
3
4 -- Circ Matrix Weights
5 CREATE TABLE config.circ_matrix_weights (
6     id                      SERIAL  PRIMARY KEY,
7     name                    TEXT    NOT NULL UNIQUE,
8     org_unit                NUMERIC(6,2)   NOT NULL,
9     grp                     NUMERIC(6,2)   NOT NULL,
10     circ_modifier           NUMERIC(6,2)   NOT NULL,
11     marc_type               NUMERIC(6,2)   NOT NULL,
12     marc_form               NUMERIC(6,2)   NOT NULL,
13     marc_bib_level          NUMERIC(6,2)   NOT NULL,
14     marc_vr_format          NUMERIC(6,2)   NOT NULL,
15     copy_circ_lib           NUMERIC(6,2)   NOT NULL,
16     copy_owning_lib         NUMERIC(6,2)   NOT NULL,
17     user_home_ou            NUMERIC(6,2)   NOT NULL,
18     ref_flag                NUMERIC(6,2)   NOT NULL,
19     juvenile_flag           NUMERIC(6,2)   NOT NULL,
20     is_renewal              NUMERIC(6,2)   NOT NULL,
21     usr_age_lower_bound     NUMERIC(6,2)   NOT NULL,
22     usr_age_upper_bound     NUMERIC(6,2)   NOT NULL
23 );
24
25 -- Hold Matrix Weights
26 CREATE TABLE config.hold_matrix_weights (
27     id                      SERIAL  PRIMARY KEY,
28     name                    TEXT    NOT NULL UNIQUE,
29     user_home_ou            NUMERIC(6,2)   NOT NULL,
30     request_ou              NUMERIC(6,2)   NOT NULL,
31     pickup_ou               NUMERIC(6,2)   NOT NULL,
32     item_owning_ou          NUMERIC(6,2)   NOT NULL,
33     item_circ_ou            NUMERIC(6,2)   NOT NULL,
34     usr_grp                 NUMERIC(6,2)   NOT NULL,
35     requestor_grp           NUMERIC(6,2)   NOT NULL,
36     circ_modifier           NUMERIC(6,2)   NOT NULL,
37     marc_type               NUMERIC(6,2)   NOT NULL,
38     marc_form               NUMERIC(6,2)   NOT NULL,
39     marc_bib_level          NUMERIC(6,2)   NOT NULL,
40     marc_vr_format          NUMERIC(6,2)   NOT NULL,
41     juvenile_flag           NUMERIC(6,2)   NOT NULL,
42     ref_flag                NUMERIC(6,2)   NOT NULL
43 );
44
45 -- Linking between weights and org units
46 CREATE TABLE config.weight_assoc (
47     id                      SERIAL  PRIMARY KEY,
48     active                  BOOL    NOT NULL,
49     org_unit                INT     NOT NULL REFERENCES actor.org_unit (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
50     circ_weights            INT     REFERENCES config.circ_matrix_weights (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
51     hold_weights            INT     REFERENCES config.hold_matrix_weights (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED
52 );
53 CREATE UNIQUE INDEX cwa_one_active_per_ou ON config.weight_assoc (org_unit) WHERE active;
54
55 COMMIT;