5 CREATE TABLE config.circ_matrix_weights (
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
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
43 -- Linking between weights and org units
44 CREATE TABLE config.weight_assoc (
45 id SERIAL PRIMARY KEY,
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
51 CREATE UNIQUE INDEX cwa_one_active_per_ou ON config.weight_assoc (org_unit) WHERE active;