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_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
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
45 -- Linking between weights and org units
46 CREATE TABLE config.weight_assoc (
47 id SERIAL PRIMARY KEY,
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
53 CREATE UNIQUE INDEX cwa_one_active_per_ou ON config.weight_assoc (org_unit) WHERE active;