]> git.evergreen-ils.org Git - Evergreen.git/blob - Open-ILS/src/sql/Pg/099.matrix_weights.sql
LP#1715767: remove privacy waiver entries when referenced actor.usr rows are deleted
[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     copy_location           NUMERIC(6,2)   NOT NULL,
12     marc_type               NUMERIC(6,2)   NOT NULL,
13     marc_form               NUMERIC(6,2)   NOT NULL,
14     marc_bib_level          NUMERIC(6,2)   NOT NULL,
15     marc_vr_format          NUMERIC(6,2)   NOT NULL,
16     copy_circ_lib           NUMERIC(6,2)   NOT NULL,
17     copy_owning_lib         NUMERIC(6,2)   NOT NULL,
18     user_home_ou            NUMERIC(6,2)   NOT NULL,
19     ref_flag                NUMERIC(6,2)   NOT NULL,
20     juvenile_flag           NUMERIC(6,2)   NOT NULL,
21     is_renewal              NUMERIC(6,2)   NOT NULL,
22     usr_age_lower_bound     NUMERIC(6,2)   NOT NULL,
23     usr_age_upper_bound     NUMERIC(6,2)   NOT NULL,
24     item_age                NUMERIC(6,2)   NOT NULL
25 );
26
27 -- Hold Matrix Weights
28 CREATE TABLE config.hold_matrix_weights (
29     id                      SERIAL  PRIMARY KEY,
30     name                    TEXT    NOT NULL UNIQUE,
31     user_home_ou            NUMERIC(6,2)   NOT NULL,
32     request_ou              NUMERIC(6,2)   NOT NULL,
33     pickup_ou               NUMERIC(6,2)   NOT NULL,
34     item_owning_ou          NUMERIC(6,2)   NOT NULL,
35     item_circ_ou            NUMERIC(6,2)   NOT NULL,
36     usr_grp                 NUMERIC(6,2)   NOT NULL,
37     requestor_grp           NUMERIC(6,2)   NOT NULL,
38     circ_modifier           NUMERIC(6,2)   NOT NULL,
39     marc_type               NUMERIC(6,2)   NOT NULL,
40     marc_form               NUMERIC(6,2)   NOT NULL,
41     marc_bib_level          NUMERIC(6,2)   NOT NULL,
42     marc_vr_format          NUMERIC(6,2)   NOT NULL,
43     juvenile_flag           NUMERIC(6,2)   NOT NULL,
44     ref_flag                NUMERIC(6,2)   NOT NULL,
45     item_age                NUMERIC(6,2)   NOT NULL
46 );
47
48 -- Linking between weights and org units
49 CREATE TABLE config.weight_assoc (
50     id                      SERIAL  PRIMARY KEY,
51     active                  BOOL    NOT NULL,
52     org_unit                INT     NOT NULL REFERENCES actor.org_unit (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED,
53     circ_weights            INT     REFERENCES config.circ_matrix_weights (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED,
54     hold_weights            INT     REFERENCES config.hold_matrix_weights (id) ON DELETE SET NULL DEFERRABLE INITIALLY DEFERRED
55 );
56 CREATE UNIQUE INDEX cwa_one_active_per_ou ON config.weight_assoc (org_unit) WHERE active;
57
58 COMMIT;