search filter group : baseline schema
authorBill Erickson <berick@esilibrary.com>
Wed, 18 Apr 2012 17:11:38 +0000 (13:11 -0400)
committerMike Rylander <mrylander@gmail.com>
Wed, 18 Apr 2012 17:27:52 +0000 (13:27 -0400)
Signed-off-by: Bill Erickson <berick@esilibrary.com>
Open-ILS/src/sql/Pg/005.schema.actors.sql

index 229f6e3..397ac2f 100644 (file)
@@ -680,23 +680,29 @@ CREATE TABLE actor.org_unit_custom_tree_node (
     sibling_order   INTEGER NOT NULL DEFAULT 0,
     CONSTRAINT aouctn_once_per_org UNIQUE (tree, org_unit)
 
+CREATE TABLE actor.search_query (
+    id          SERIAL PRIMARY KEY, 
+    label       TEXT NOT NULL, -- i18n
+    query_text  TEXT NOT NULL -- QP text
+);
+
 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  sf_code_once_per_org UNIQUE (owner, code),
-    CONSTRAINT  sf_label_once_per_org UNIQUE (owner, label)
+    CONSTRAINT  asfg_label_once_per_org UNIQUE (owner, label)
 );
 
 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)
 );
 
 COMMIT;