view flys-artifacts/doc/conf/datacage.sql @ 980:f9a6a9cd918e

Datacage: Added ON DELETE CASCADE constraints in schema. flys-artifacts/trunk@2407 c6561f87-3c4e-4783-a992-168aeb5c3f6f
author Sascha L. Teichmann <sascha.teichmann@intevation.de>
date Wed, 27 Jul 2011 08:20:55 +0000
parents 2306340d7540
children 799c7108ea6d
line wrap: on
line source
BEGIN;

CREATE TABLE users (
    id  IDENTITY PRIMARY KEY NOT NULL,
    gid UUID                 NOT NULL UNIQUE
);

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
);

CREATE TABLE artifacts (
    id    IDENTITY PRIMARY KEY NOT NULL,
    gid   UUID                 NOT NULL UNIQUE,
    state VARCHAR(256)         NOT NULL
);

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
);

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
    UNIQUE (artifact_id, k)
);

CREATE TABLE facets (
    id          IDENTITY PRIMARY KEY NOT NULL,
    artifact_id INT                  NOT NULL REFERENCES artifacts(id) ON DELETE CASCADE,
    name        VARCHAR(256)         NOT NULL,
    num         INT                  NOT NULL,
    state       VARCHAR(256)         NOT NULL,
    output      VARCHAR(256)         NOT NULL,
    description VARCHAR(256),
    UNIQUE (artifact_id, output, num, name)
);

-- DROP TABLE facets;
-- DROP TABLE artifact_data;
-- DROP TABLE collection_items;
-- DROP TABLE collections;
-- DROP TABLE artifacts;
-- DROP TABLE users;

COMMIT;

http://dive4elements.wald.intevation.org