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