As requested, these are the table scripts:
CREATE TABLE "VCMS"."VCMSCASE"
( "VARAPPLICATIONID" RAW(16) DEFAULT NULL NOT NULL ENABLE,
"CURRENTASSIGNID" RAW(16),
CONSTRAINT "PK_VCMSCASE_ID" PRIMARY KEY ("VARAPPLICATIONID") ENABLE,
FOREIGN KEY ("CURRENTASSIGNID")
REFERENCES "VCMS"."VCMSCASEASSIGN" ("ASSIGNID") ENABLE,
FOREIGN KEY ("VARAPPLICATIONID")
REFERENCES "VCMS"."VARAPPLICATION" ("VARAPPLICATIONID") ENABLE
) ;
CREATE TABLE "VCMS"."VARAPPLICATION"
( "VARAPPLICATIONID" RAW(16) DEFAULT NULL NOT NULL ENABLE,
"CAPTUREUSERID" RAW(16) NOT NULL ENABLE,
"VARIATIONTYPEID" RAW(16),
"INDUSTRYSECTORCODE" VARCHAR2(4 BYTE) NOT NULL ENABLE,
"APPLICATIONNUMBER" NUMBER(38,0) NOT NULL ENABLE,
"PARTYID" VARCHAR2(32 BYTE) NOT NULL ENABLE,
"APPLICATIONDATE" DATE DEFAULT SYSDATE NOT NULL ENABLE,
"PROVINCEID" NUMBER(10,0) NOT NULL ENABLE,
"VARIATIONFROM" DATE NOT NULL ENABLE,
"VARIATIONTO" DATE NOT NULL ENABLE,
"TOTALEMPLOYEES" NUMBER(38,0) NOT NULL ENABLE,
"TOTALEMPLOYEESAFFECTED" NUMBER(38,0) NOT NULL ENABLE,
"VARIATIONREASON" CLOB,
"HASPOINTOFDISSENTION" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
"POINTSOFDISSENTION" CLOB,
"HASOTHERPARTYDISPUTE" NUMBER(1,0) DEFAULT 0 NOT NULL ENABLE,
"OTHERPARYTDISPUTEDETAILS" CLOB,
"SIGNATORYNAME" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"SIGNATORYPOSITION" VARCHAR2(100 BYTE) NOT NULL ENABLE,
"SIGNATORYDATE" DATE DEFAULT SYSDATE ,
CONSTRAINT "PK_VARAPP_ID" PRIMARY KEY ("VARAPPLICATIONID") ENABLE,
FOREIGN KEY ("VARIATIONTYPEID")
REFERENCES "VCMS"."VARIATIONTYPE" ("VARIATIONTYPEID") ENABLE,
FOREIGN KEY ("CAPTUREUSERID")
REFERENCES "VCMS"."SECURITYUSERS" ("USERID") ENABLE
) ;
CREATE TABLE "VCMS"."SELECTEDSECTION"
( "VARAPPLICATIONID" RAW(16) DEFAULT NULL NOT NULL ENABLE,
"SECTIONIDKEY" RAW(16) DEFAULT sys_guid() NOT NULL ENABLE,
CONSTRAINT "PK_SELSEC_ID" PRIMARY KEY ("VARAPPLICATIONID", "SECTIONIDKEY") ENABLE,
FOREIGN KEY ("SECTIONIDKEY")
REFERENCES "VCMS"."LEGISLATIONSECTION" ("SECTIONIDKEY") ENABLE,
FOREIGN KEY ("VARAPPLICATIONID")
REFERENCES "VCMS"."VARAPPLICATION" ("VARAPPLICATIONID") ENABLE
) ;
And the class hierarchy/relations as follows:
class VcmsApplicationEntity
{
SelectedSectionCollection;
}
class VcmsCaseEntity : VcmsApplicationEntity;
class SelectedSectionEntity;
Edit: I have the inheritance set as "One target (view/table) per entity type" for VcmsCaseEntity and VcmsApplicationEntity. The VcmsCaseEntity 'extends' the VcmsApplicationEntity with additional information. The VARAPPLICATIONID on VCMSCASE is unique, so a 1:1 relationship with VARAPPLICATION. SELECTEDSECTION is an n:1 relationship to VARAPPLICATION/VCMSCASE.