From: Bill Erickson Date: Thu, 5 Apr 2012 19:11:09 +0000 (-0400) Subject: search filter group : schema notes on search_query consolidation X-Git-Url: https://old-git.evergreen-ils.org/?a=commitdiff_plain;h=201ad09ae06f3b435474e97a9873764e95dee5ec;p=evergreen%2Fequinox.git search filter group : schema notes on search_query consolidation Signed-off-by: Bill Erickson --- diff --git a/Open-ILS/src/sql/Pg/005.schema.actors.sql b/Open-ILS/src/sql/Pg/005.schema.actors.sql index f0fa3014d6..229f6e368b 100644 --- a/Open-ILS/src/sql/Pg/005.schema.actors.sql +++ b/Open-ILS/src/sql/Pg/005.schema.actors.sql @@ -686,7 +686,8 @@ CREATE TABLE actor.search_filter_group ( code TEXT NOT NULL, -- use in templates / CGI params label TEXT NOT NULL, -- i18n create_date TIMESTAMPTZ NOT NULL DEFAULT now(), - CONSTRAINT code_once_per_org UNIQUE (owner, code) + CONSTRAINT sf_code_once_per_org UNIQUE (owner, code), + CONSTRAINT sf_label_once_per_org UNIQUE (owner, label) ); CREATE TABLE actor.search_filter_group_entry ( diff --git a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.search_query_groups.sql b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.search_query_groups.sql index 493edc22eb..d2af899a3d 100644 --- a/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.search_query_groups.sql +++ b/Open-ILS/src/sql/Pg/upgrade/XXXX.schema.search_query_groups.sql @@ -1,26 +1,49 @@ BEGIN; +-- QP sub-search inclusion will be based on actor.search_query.id +CREATE TABLE actor.search_query ( + id SERIAL PRIMARY KEY, + label TEXT NOT NULL, -- i18n + query_text TEXT NOT NULL, -- QP text +); + +-- e.g. "Reading Level" CREATE TABLE actor.search_filter_group ( id SERIAL PRIMARY KEY, - owner INT NOT NULL REFERENCES actor.org_unit (id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, - code TEXT NOT NULL, -- use in templates / CGI params + owner INT NOT NULL REFERENCES actor.org_unit (id) + ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, label TEXT NOT NULL, -- i18n create_date TIMESTAMPTZ NOT NULL DEFAULT now(), - CONSTRAINT code_once_per_org UNIQUE (owner, code), - CONSTRAINT label_once_per_org UNIQUE (owner, label) + CONSTRAINT asfg_code_once_per_org UNIQUE (owner, code), + CONSTRAINT asfg_label_once_per_org UNIQUE (owner, label) ); - +-- e.g. "Adult", "Teen", etc. CREATE TABLE actor.search_filter_group_entry ( - id SERIAL PRIMARY KEY, - grp INT NOT NULL REFERENCES actor.search_filter_group(id) ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, - label TEXT NOT NULL, -- i18n - pos INT NOT NULL DEFAULT 0, - query_text TEXT NOT NULL, -- QP text - CONSTRAINT query_once_per_group UNIQUE (grp, query_text) + id SERIAL PRIMARY KEY, + grp INT NOT NULL REFERENCES actor.search_filter_group(id) + ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, + pos INT NOT NULL DEFAULT 0, + query INT NOT NULL REFERENCES actor.search_query(id) + ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, + CONSTRAINT asfge_query_once_per_group UNIQUE (grp, query) ); + +-- also use query for user saved searches. +-- this allows us to support user-default-search-filters for KCLS (opac36) +-- https://docs.google.com/document/d/1EvdytPqFjLwuA3R7U0tSuk3floBossoBdRfLR_1YH7Y/edit +-- note:would need a tmp stored proc to migrate properly +ALTER TABLE actor.usr_saved_search + ADD COLUMN query NOT NULL REFERENCES actor.search_query(id) + ON DELETE CASCADE DEFERRABLE INITIALLY DEFERRED, + DROP COLUMN query_text, -- gets from query + DROP COLUMN name, -- gets from query + DROP COLUMN query_type, -- may be presumptuous. QP text is the only used type. + +-- + COMMIT; /*