diff options
Diffstat (limited to 'golang/fatcat-schema.sql')
| -rw-r--r-- | golang/fatcat-schema.sql | 68 | 
1 files changed, 0 insertions, 68 deletions
| diff --git a/golang/fatcat-schema.sql b/golang/fatcat-schema.sql deleted file mode 100644 index f5983371..00000000 --- a/golang/fatcat-schema.sql +++ /dev/null @@ -1,68 +0,0 @@ - --- written for Postgres 9.6 with OSSP extension for UUIDs - -CREATE EXTENSION IF NOT EXISTS "uuid-ossp"; - -DROP TABLE IF EXISTS editor CASCADE; -DROP TABLE IF EXISTS editgroup CASCADE; -DROP TABLE IF EXISTS changelog CASCADE; -DROP TABLE IF EXISTS creator_rev CASCADE; -DROP TABLE IF EXISTS creator_ident CASCADE; -DROP TABLE IF EXISTS creator_edit CASCADE; - --- uuid_generate_v1mc: timestamp ordered, random MAC address --- uuid_generate_v4:   totally random - --- NB: could use LIKE clause, or "composite types" - -CREATE TABLE editor ( -    id                  BIGSERIAL PRIMARY KEY, -    username            TEXT NOT NULL, -    is_admin            BOOLEAN NOT NULL DEFAULT false, -    active_editgroup_id BIGINT -- REFERENCES( editgroup(id) via ALTER below -); - -CREATE TABLE editgroup ( -    id                  BIGSERIAL PRIMARY KEY, -    extra_json          JSON, -    editor_id           BIGSERIAL REFERENCES editor(id) NOT NULL, -    description         TEXT -); - -ALTER TABLE editor -    ADD CONSTRAINT editor_editgroupid_fkey FOREIGN KEY (active_editgroup_id) -        REFERENCES editgroup(id); - -CREATE TABLE changelog ( -    id                  BIGSERIAL PRIMARY KEY, -    editgroup_id        BIGINT REFERENCES editgroup(id) NOT NULL, -    timestamp           TIMESTAMP WITHOUT TIME ZONE DEFAULT now() -); - -CREATE TABLE creator_rev ( -    id                  BIGSERIAL PRIMARY KEY, -    extra_json          JSON, - -    name                TEXT, -    orcid               TEXT -); - --- Could denormalize a "is_live" flag into revision tables, to make indices --- more efficient -CREATE INDEX creator_rev_orcid_idx ON creator_rev(orcid) WHERE orcid IS NOT NULL; - -CREATE TABLE creator_ident ( -    id                  UUID PRIMARY KEY DEFAULT uuid_generate_v4(), -    is_live             BOOL NOT NULL, -    rev_id              BIGINT REFERENCES creator_rev(id), -    redirect_id         UUID REFERENCES creator_ident(id) -); - -CREATE TABLE creator_edit ( -    id                  BIGSERIAL PRIMARY KEY, -    extra_json          JSON, -    ident_id            UUID REFERENCES creator_ident(id) NOT NULL, -    rev_id              BIGINT REFERENCES creator_rev(id), -    redirect_id         UUID REFERENCES creator_ident(id), -    editgroup_id        BIGINT REFERENCES editgroup(id) NOT NULL -); | 
