diff flys-artifacts/doc/conf/datacage.sql @ 985:8094ba4ab873

Datacage SQL schema: Using sequences for id generation now to make schema more compatible. flys-artifacts/trunk@2417 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Thu, 28 Jul 2011 14:38:51 +0000
parents 799c7108ea6d
children dbe39e1fb5e7
line wrap: on
line diff
--- a/flys-artifacts/doc/conf/datacage.sql	Thu Jul 28 14:26:01 2011 +0000
+++ b/flys-artifacts/doc/conf/datacage.sql	Thu Jul 28 14:38:51 2011 +0000
@@ -1,56 +1,77 @@
 BEGIN;
 
+CREATE SEQUENCE USERS_ID_SEQ;
+
 CREATE TABLE users (
-    id  IDENTITY PRIMARY KEY NOT NULL,
-    gid UUID                 NOT NULL UNIQUE
+    id  INT  PRIMARY KEY NOT NULL,
+    gid UUID             NOT NULL UNIQUE
 );
 
+CREATE SEQUENCE COLLECTIONS_ID_SEQ;
+
 CREATE TABLE collections (
-    id      IDENTITY PRIMARY KEY NOT NULL,
-    gid     UUID                 NOT NULL UNIQUE,
-    user_id INT                  NOT NULL REFERENCES users(id) ON DELETE CASCADE,
-    name    VARCHAR(256)         NOT NULL
+    id      INT  PRIMARY KEY NOT NULL,
+    gid     UUID             NOT NULL UNIQUE,
+    user_id INT              NOT NULL REFERENCES users(id) ON DELETE CASCADE,
+    name    VARCHAR(256)     NOT NULL
 );
 
+CREATE SEQUENCE ARTIFACTS_ID_SEQ;
+
 CREATE TABLE artifacts (
-    id    IDENTITY PRIMARY KEY NOT NULL,
-    gid   UUID                 NOT NULL UNIQUE,
-    state VARCHAR(256)         NOT NULL
+    id    INT  PRIMARY KEY NOT NULL,
+    gid   UUID             NOT NULL UNIQUE,
+    state VARCHAR(256)     NOT NULL
 );
 
+CREATE SEQUENCE COLLECTIONS_ITEMS_ID_SEQ;
+
 CREATE TABLE collection_items (
-    id            IDENTITY PRIMARY KEY NOT NULL,
-    collection_id INT                  NOT NULL REFERENCES collections(id) ON DELETE CASCADE,
-    artifact_id   INT                  NOT NULL REFERENCES artifacts(id)   ON DELETE CASCADE
+    id            INT PRIMARY KEY NOT NULL,
+    collection_id INT             NOT NULL REFERENCES collections(id) ON DELETE CASCADE,
+    artifact_id   INT             NOT NULL REFERENCES artifacts(id)   ON DELETE CASCADE
 );
 
+CREATE SEQUENCE ARTIFACT_DATA_ID_SEQ;
+
 CREATE TABLE artifact_data (
-    id          IDENTITY PRIMARY KEY NOT NULL,
-    artifact_id INT                  NOT NULL REFERENCES artifacts(id) ON DELETE CASCADE,
-    k           VARCHAR(256)         NOT NULL,
-    v           VARCHAR(256),         -- Maybe too short
+    id          INT PRIMARY KEY NOT NULL,
+    artifact_id INT             NOT NULL REFERENCES artifacts(id) ON DELETE CASCADE,
+    k           VARCHAR(256)    NOT NULL,
+    v           VARCHAR(256),   -- Maybe too short
     UNIQUE (artifact_id, k)
 );
 
+CREATE SEQUENCE OUTS_ID_SEQ;
+
 CREATE TABLE outs (
-    id          IDENTITY PRIMARY KEY NOT NULL,
-    artifact_id INT                  NOT NULL REFERENCES artifacts(id) ON DELETE CASCADE,
-    name        VARCHAR(256)         NOT NULL,
+    id          INT PRIMARY KEY NOT NULL,
+    artifact_id INT             NOT NULL REFERENCES artifacts(id) ON DELETE CASCADE,
+    name        VARCHAR(256)    NOT NULL,
     description VARCHAR(256),
     out_type    VARCHAR(256)
 );
 
+CREATE SEQUENCE FACETS_ID_SEQ;
+
 CREATE TABLE facets (
-    id          IDENTITY PRIMARY KEY NOT NULL,
-    artifact_id INT                  NOT NULL REFERENCES artifacts(id) ON DELETE CASCADE,
-    out_id      INT                  NOT NULL REFERENCES outs(id)      ON DELETE CASCADE,
-    name        VARCHAR(256)         NOT NULL,
+    id          INT PRIMARY KEY NOT NULL,
+    artifact_id INT             NOT NULL REFERENCES artifacts(id) ON DELETE CASCADE,
+    out_id      INT             NOT NULL REFERENCES outs(id)      ON DELETE CASCADE,
+    name        VARCHAR(256)    NOT NULL,
     num         INT                  NOT NULL,
     state       VARCHAR(256)         NOT NULL,
     description VARCHAR(256),
-    UNIQUE (artifact_id, output, num, name)
+    UNIQUE (artifact_id, out_id, num, name)
 );
 
+-- DROP SEQUENCE USERS_ID_SEQ;
+-- DROP SEQUENCE COLLECTIONS_ID_SEQ;
+-- DROP SEQUENCE ARTIFACTS_ID_SEQ;
+-- DROP SEQUENCE COLLECTIONS_ITEMS_ID_SEQ;
+-- DROP SEQUENCE ARTIFACT_DATA_ID_SEQ;
+-- DROP SEQUENCE OUTS_ID_SEQ;
+-- DROP SEQUENCE FACETS_ID_SEQ;
 -- DROP TABLE facets;
 -- DROP TABLE outs;
 -- DROP TABLE artifact_data;

http://dive4elements.wald.intevation.org