diff --git a/screening/source/sql/postgresql/001/schema-001.sql b/screening/source/sql/postgresql/001/schema-001.sql index 884160929b684d9a786826bf919dc8ace9162d99..38c6301028ed2b21bb4ff7dd312119a8328a1bf6 100644 --- a/screening/source/sql/postgresql/001/schema-001.sql +++ b/screening/source/sql/postgresql/001/schema-001.sql @@ -13,8 +13,7 @@ CREATE DOMAIN DESCRIPTION AS VARCHAR(200); CREATE DOMAIN FILE_PATH as VARCHAR(1000); -// TODO -#CREATE DOMAIN COLOR_COMPONENT AS (RED, GREEN, BLUE); +CREATE DOMAIN COLOR_COMPONENT AS VARCHAR(40) CHECK (VALUE IN ('RED', 'GREEN', 'BLUE')); /* ---------------------------------------------------------------------- */ /* Tables */ @@ -53,8 +52,7 @@ CREATE TABLE SPOTS ( PRIMARY KEY (ID), UNIQUE (PERM_ID), - CONSTRAINT FK_SPOT_1 FOREIGN KEY (EXPE_ID) REFERENCES EXPERIMENTS (ID) ON DELETE CASCADE ON UPDATE CASCADE - CONSTRAINT FK_SPOT_2 FOREIGN KEY (CONT_ID) REFERENCES CONTAINERS (ID) ON DELETE CASCADE ON UPDATE CASCADE + CONSTRAINT FK_SPOT_1 FOREIGN KEY (CONT_ID) REFERENCES CONTAINERS (ID) ON DELETE CASCADE ON UPDATE CASCADE ); @@ -65,13 +63,11 @@ CREATE TABLE DATA_SETS ( FIELDS_WIDTH INTEGER, FIELDS_HEIGHT INTEGER, - EXPE_ID TECH_ID NOT NULL, - SAMP_ID TECH_ID, + CONT_ID TECH_ID, PRIMARY KEY (ID), UNIQUE (PERM_ID), - CONSTRAINT FK_DATA_SET_1 FOREIGN KEY (EXPE_ID) REFERENCES EXPERIMENTS (ID) ON DELETE CASCADE ON UPDATE CASCADE, - CONSTRAINT FK_DATA_SET_2 FOREIGN KEY (SAMP_ID) REFERENCES SAMPLES (ID) ON DELETE CASCADE ON UPDATE CASCADE + CONSTRAINT FK_DATA_SET_1 FOREIGN KEY (CONT_ID) REFERENCES CONTAINERS (ID) ON DELETE CASCADE ON UPDATE CASCADE ); CREATE TABLE CHANNELS ( @@ -83,6 +79,7 @@ CREATE TABLE CHANNELS ( DS_ID TECH_ID NOT NULL, + PRIMARY KEY (ID), CONSTRAINT FK_CHANNELS_1 FOREIGN KEY (DS_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE ON UPDATE CASCADE ); @@ -93,14 +90,15 @@ CREATE TABLE CHANNEL_STACKS ( X INTEGER, Y INTEGER, -- we use the fixed dimension meters here - Z_in_M FLOAT, + Z_in_M REAL, -- we use the fixed dimension seconds here - T_in_SEC FLOAT, + T_in_SEC REAL, DS_ID TECH_ID NOT NULL, SPOT_ID TECH_ID NOT NULL, - CONSTRAINT FK_CHANNEL_STACKS_1 FOREIGN KEY (SPOT_ID) REFERENCES SPOTS (ID) ON DELETE CASCADE ON UPDATE CASCADE + PRIMARY KEY (ID), + CONSTRAINT FK_CHANNEL_STACKS_1 FOREIGN KEY (SPOT_ID) REFERENCES SPOTS (ID) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT FK_CHANNEL_STACKS_2 FOREIGN KEY (DS_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE ON UPDATE CASCADE ); @@ -109,15 +107,14 @@ CREATE TABLE IMAGES ( PATH FILE_PATH NOT NULL, PAGE INTEGER, - #COLOR COLOR_COMPONENT, + COLOR COLOR_COMPONENT, CHANNEL_STACK_ID TECH_ID NOT NULL, CHANNEL_ID TECH_ID NOT NULL, - DS_ID TECH_ID NOT NULL, - CONSTRAINT FK_IMAGES_1 FOREIGN KEY (CHANNEL_STACK_ID) REFERENCES CHANNEL_STACKS (ID) ON DELETE CASCADE ON UPDATE CASCADE - CONSTRAINT FK_IMAGES_2 FOREIGN KEY (CHANNEL_ID) REFERENCES CHANNELS (ID) ON DELETE CASCADE ON UPDATE CASCADE - CONSTRAINT FK_IMAGES_3 FOREIGN KEY (DS_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE ON UPDATE CASCADE + PRIMARY KEY (ID), + CONSTRAINT FK_IMAGES_1 FOREIGN KEY (CHANNEL_STACK_ID) REFERENCES CHANNEL_STACKS (ID) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT FK_IMAGES_2 FOREIGN KEY (CHANNEL_ID) REFERENCES CHANNELS (ID) ON DELETE CASCADE ON UPDATE CASCADE ); /* ---------------------------------------------------------------------- */ @@ -125,13 +122,32 @@ CREATE TABLE IMAGES ( /* ---------------------------------------------------------------------- */ CREATE TABLE FEATURE_DEFS ( - ID BIGSERIAL NOT NULL - // TODO + ID BIGSERIAL NOT NULL, + + NAME NAME NOT NULL, + DESCRIPTION DESCRIPTION, + + DS_ID TECH_ID NOT NULL, + + PRIMARY KEY (ID), + CONSTRAINT FK_FEATURE_DEFS_1 FOREIGN KEY (DS_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE ON UPDATE CASCADE ); CREATE TABLE FEATURE_VALUES ( - ID BIGSERIAL NOT NULL - // TODO + ID BIGSERIAL NOT NULL, + + Z REAL, + T REAL, + VALUES BYTEA, + + FD_ID TECH_ID NOT NULL, + DS_ID TECH_ID NOT NULL, + + PRIMARY KEY (ID), + CONSTRAINT FK_FEATURE_VALUES_1 FOREIGN KEY (FD_ID) REFERENCES FEATURE_DEFS (ID) ON DELETE CASCADE ON UPDATE CASCADE, + CONSTRAINT FK_FEATURE_VALUES_2 FOREIGN KEY (DS_ID) REFERENCES DATA_SETS (ID) ON DELETE CASCADE ON UPDATE CASCADE + ); +