-- NON-VERSIONED PROPERTIES
CONSTRIANT PK_ENT_TBL PRIMARY KEY (ENT_ID)
CREATE TABLE ENT_VRSN_TBL (
ENT_VRSN_ID UUID NOT NULL,
VRSN_SEQ_ID BIGINT NOT NULL, -- THE VERSION SEQUENCEING IDENTIFIER
ENT_ID UUID NOT NULL, -- THE ENTITY THIS VERSION APPLIES TO
CRT_UTC TIMESTAMP NOT NULL, -- THE TIME THE VERSION WAS CREATED
CRT_PROV_ID UUID NOT NULL, -- THE PROVENANCE THAT CREATED THIS
OBSLT_UTC TIMESTAMP, -- THE TIME THE VERSION IS NO LONGER VALID
OBSLT_PROV_ID UUID, -- THE PROVENANCE OF WHAT OBSOLETED THIS
RPLC_VRSN_ID UUID, -- THE REPLACED VERSION
... -- VERSIONED DATA FIELDS
CONSTRAINT PK_ENT_VRSN_TBL PRIMARY KEY (ENT_VRSN_ID),
CONSTRAINT FK_ENT_VRSN_ENT_TBL FOREIGN KEY (ENT_ID) REFERENCES ENT_TBL(ENT_ID),
CONSTRAINT FK_ENT_VRSN_RPLC FOREIGN KEY (RPLC_VRSN_ID) REFERENCE ENT_VRSN_TBL(ENT_VRSN_ID)
CREATE UNIQUE INDEX ENT_VRSN_SEQ_UQ_IDX ON ENT_VRSN_TBL(VRSN_SEQ_ID);