Index: project.properties =================================================================== --- project.properties (revision 373931) +++ project.properties (working copy) @@ -17,13 +17,18 @@ jdo.tck.excludelist = ${basedir}/src/conf/exclude.list # Maven repository +## Does this belong here?????? maven.repo.remote = http://www.ibiblio.org/maven, http://www.jpox.org/downloads/maven maven.checkstyle.properties = ${basedir}/../jdo_checks.xml # iut properties file +<<<<<<< .mine +iut.pmf.properties = iut.properties +======= iut.pmf.properties = iut-pmf.properties +>>>>>>> .r370871 -# The IUT enhancer, defaults to JPOX enhancer +# The IUT enhancer iut.enhanced.dir = ${maven.build.dir}/enhanced/iut # JUnit settings @@ -35,7 +40,7 @@ # JDO TCK settings # Setting this property to false will turn off cleanup of data from database to inspect database contents after test run jdo.tck.cleanupaftertest = true -jdo.tck.dblist=derby +jdori.tck.dblist=derby jdo.tck.identitytypes=applicationidentity datastoreidentity jdo.tck.testclasses.dir = ${maven.build.dir}/classes jdo.tck.testdir = ${maven.build.dir} Index: project.xml =================================================================== --- project.xml (revision 373931) +++ project.xml (working copy) @@ -148,7 +148,11 @@ +<<<<<<< .mine + +======= src/java +>>>>>>> .r370871 ${basedir}/src/java Index: src/sql/derby/datastoreidentity/schema1.sql =================================================================== --- src/sql/derby/datastoreidentity/schema1.sql (revision 373931) +++ src/sql/derby/datastoreidentity/schema1.sql (working copy) @@ -51,13 +51,14 @@ ID INTEGER, NAME VARCHAR(32) NOT NULL, EMP_OF_THE_MONTH INTEGER, - COMPANYID INTEGER REFERENCES companies, - CONSTRAINT DEPTS_PK PRIMARY KEY (DATASTORE_IDENTITY) + COMPANYID INTEGER, + CONSTRAINT DEPTS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT DEPTS_COMPANYID FOREIGN KEY (COMPANYID) REFERENCES companies (DATASTORE_IDENTITY) ); CREATE TABLE persons ( DATASTORE_IDENTITY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, - PERSONID INTEGER UNIQUE NOT NULL, + PERSONID INTEGER NOT NULL, FIRSTNAME VARCHAR(32) NOT NULL, LASTNAME VARCHAR(32) NOT NULL, MIDDLENAME VARCHAR(32), @@ -68,20 +69,26 @@ STATE CHAR(2), ZIPCODE CHAR(5), COUNTRY VARCHAR(64), - CONSTRAINT PERS_PK PRIMARY KEY (DATASTORE_IDENTITY) + CONSTRAINT PERS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT PERS_UK UNIQUE (PERSONID) ); CREATE TABLE employees ( DATASTORE_IDENTITY INTEGER NOT NULL, HIREDATE VARCHAR(32), WEEKLYHOURS DOUBLE, - DEPARTMENT INTEGER REFERENCES departments, - FUNDINGDEPT INTEGER REFERENCES departments, - MANAGER INTEGER REFERENCES persons, - MENTOR INTEGER REFERENCES persons, - HRADVISOR INTEGER REFERENCES persons, + DEPARTMENT INTEGER, + FUNDINGDEPT INTEGER, + MANAGER INTEGER, + MENTOR INTEGER, + HRADVISOR INTEGER, CONSTRAINT EMPS_PK PRIMARY KEY (DATASTORE_IDENTITY), - CONSTRAINT EMPS_FK FOREIGN KEY (DATASTORE_IDENTITY) REFERENCES persons (DATASTORE_IDENTITY) + CONSTRAINT EMPS_FK FOREIGN KEY (DATASTORE_IDENTITY) REFERENCES persons (DATASTORE_IDENTITY), + CONSTRAINT EMPS_DEPARTMENT FOREIGN KEY (DEPARTMENT) REFERENCES departments (DATASTORE_IDENTITY), + CONSTRAINT EMPS_FUNDINGDEPT FOREIGN KEY (FUNDINGDEPT) REFERENCES departments (DATASTORE_IDENTITY), + CONSTRAINT EMPS_MANAGER FOREIGN KEY (MANAGER) REFERENCES persons (DATASTORE_IDENTITY), + CONSTRAINT EMPS_MENTOR FOREIGN KEY (MENTOR) REFERENCES persons (DATASTORE_IDENTITY), + CONSTRAINT EMPS_HRADVISOR FOREIGN KEY (HRADVISOR) REFERENCES persons (DATASTORE_IDENTITY) ); CREATE TABLE parttimeemployees ( @@ -102,8 +109,9 @@ DATASTORE_IDENTITY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, INSID INTEGER, CARRIER VARCHAR(64) NOT NULL, - EMPLOYEE INTEGER REFERENCES persons, - CONSTRAINT INS_PK PRIMARY KEY (DATASTORE_IDENTITY) + EMPLOYEE INTEGER, + CONSTRAINT INS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT INS_EMPLOYEE FOREIGN KEY (EMPLOYEE) REFERENCES persons (DATASTORE_IDENTITY) ); CREATE TABLE medicalinsurance ( @@ -122,10 +130,11 @@ CREATE TABLE projects ( DATASTORE_IDENTITY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, - PROJID INTEGER UNIQUE NOT NULL, + PROJID INTEGER NOT NULL, NAME VARCHAR(32) NOT NULL, BUDGET DECIMAL(11,2) NOT NULL, - CONSTRAINT PROJS_PK PRIMARY KEY (DATASTORE_IDENTITY) + CONSTRAINT PROJS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT PROJS_UK UNIQUE (PROJID) ); CREATE TABLE project_reviewer ( @@ -139,9 +148,10 @@ ); CREATE TABLE employee_phoneno_type ( - EMPID INTEGER REFERENCES persons NOT NULL, + EMPID INTEGER NOT NULL, PHONENO VARCHAR(16) NOT NULL, - TYPE VARCHAR(16) NOT NULL + TYPE VARCHAR(16) NOT NULL, + CONSTRAINT employee_phoneno_type_EMPID FOREIGN KEY (EMPID) REFERENCES persons (DATASTORE_IDENTITY) ); ALTER TABLE project_reviewer Index: src/sql/derby/datastoreidentity/schema2.sql =================================================================== --- src/sql/derby/datastoreidentity/schema2.sql (revision 373931) +++ src/sql/derby/datastoreidentity/schema2.sql (working copy) @@ -59,13 +59,15 @@ ID INTEGER, NAME VARCHAR(32) NOT NULL, EMP_OF_THE_MONTH INTEGER, - COMPANYID INTEGER REFERENCES companies, - CONSTRAINT DEPTS_PK PRIMARY KEY (DATASTORE_IDENTITY) + COMPANYID INTEGER, + CONSTRAINT DEPTS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT DEPTS_COMPANYID FOREIGN KEY (COMPANYID) + REFERENCES companies (DATASTORE_IDENTITY) ); CREATE TABLE persons ( DATASTORE_IDENTITY INTEGER NOT NULL, - PERSONID INTEGER UNIQUE NOT NULL, + PERSONID INTEGER NOT NULL, FIRSTNAME VARCHAR(32) NOT NULL, LASTNAME VARCHAR(32) NOT NULL, MIDDLENAME VARCHAR(32), @@ -76,12 +78,13 @@ STATE CHAR(2), ZIPCODE CHAR(5), COUNTRY VARCHAR(64), + CONSTRAINT PERS_UK UNIQUE (PERSONID), CONSTRAINT PERS_PK PRIMARY KEY (DATASTORE_IDENTITY) ); CREATE TABLE fulltimeemployees ( DATASTORE_IDENTITY INTEGER NOT NULL, - PERSONID INTEGER UNIQUE NOT NULL, + PERSONID INTEGER NOT NULL, FIRSTNAME VARCHAR(32) NOT NULL, LASTNAME VARCHAR(32) NOT NULL, MIDDLENAME VARCHAR(32), @@ -94,18 +97,29 @@ COUNTRY VARCHAR(64), HIREDATE VARCHAR(32), WEEKLYHOURS DOUBLE, - DEPARTMENT INTEGER REFERENCES departments, - FUNDINGDEPT INTEGER REFERENCES departments, - MANAGER INTEGER REFERENCES fulltimeemployees, - MENTOR INTEGER REFERENCES fulltimeemployees, - HRADVISOR INTEGER REFERENCES fulltimeemployees, + DEPARTMENT INTEGER, + FUNDINGDEPT INTEGER, + MANAGER INTEGER, + MENTOR INTEGER, + HRADVISOR INTEGER, SALARY DOUBLE, - CONSTRAINT FTEMPS_PK PRIMARY KEY (DATASTORE_IDENTITY) + CONSTRAINT FTEMPS_UK UNIQUE (PERSONID), + CONSTRAINT FTEMPS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT FTEMPS_DEPARTMENT FOREIGN KEY (DEPARTMENT) + REFERENCES departments (DATASTORE_IDENTITY), + CONSTRAINT FTEMPS_FUNDINGDEPT FOREIGN KEY (FUNDINGDEPT) + REFERENCES departments (DATASTORE_IDENTITY), + CONSTRAINT FTEMPS_MANAGER FOREIGN KEY (MANAGER) + REFERENCES fulltimeemployees (DATASTORE_IDENTITY), + CONSTRAINT FTEMPS_MENTOR FOREIGN KEY (MENTOR) + REFERENCES fulltimeemployees (DATASTORE_IDENTITY), + CONSTRAINT FTEMPS_HRADVISOR FOREIGN KEY (HRADVISOR) + REFERENCES fulltimeemployees (DATASTORE_IDENTITY) ); CREATE TABLE parttimeemployees ( DATASTORE_IDENTITY INTEGER NOT NULL, - PERSONID INTEGER UNIQUE NOT NULL, + PERSONID INTEGER NOT NULL, FIRSTNAME VARCHAR(32) NOT NULL, LASTNAME VARCHAR(32) NOT NULL, MIDDLENAME VARCHAR(32), @@ -118,38 +132,54 @@ COUNTRY VARCHAR(64), HIREDATE VARCHAR(32), WEEKLYHOURS DOUBLE, - DEPARTMENT INTEGER REFERENCES departments, - FUNDINGDEPT INTEGER REFERENCES departments, - MANAGER INTEGER REFERENCES fulltimeemployees, - MENTOR INTEGER REFERENCES fulltimeemployees, - HRADVISOR INTEGER REFERENCES fulltimeemployees, + DEPARTMENT INTEGER, + FUNDINGDEPT INTEGER, + MANAGER INTEGER, + MENTOR INTEGER, + HRADVISOR INTEGER, WAGE DOUBLE, - CONSTRAINT PTEMPS_PK PRIMARY KEY (DATASTORE_IDENTITY) + CONSTRAINT PTEMPS_UK UNIQUE (PERSONID), + CONSTRAINT PTEMPS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT PTEMPS_DEPARTMENT FOREIGN KEY (DEPARTMENT) + REFERENCES departments (DATASTORE_IDENTITY), + CONSTRAINT PTEMPS_FUNDINGDEPT FOREIGN KEY (FUNDINGDEPT) + REFERENCES departments (DATASTORE_IDENTITY), + CONSTRAINT PTEMPS_MANAGER FOREIGN KEY (MANAGER) + REFERENCES parttimeemployees (DATASTORE_IDENTITY), + CONSTRAINT PTEMPS_MENTOR FOREIGN KEY (MENTOR) + REFERENCES parttimeemployees (DATASTORE_IDENTITY), + CONSTRAINT PTEMPS_HRADVISOR FOREIGN KEY (HRADVISOR) + REFERENCES parttimeemployees (DATASTORE_IDENTITY) ); CREATE TABLE medicalinsurance ( DATASTORE_IDENTITY INTEGER NOT NULL, INSID INTEGER, CARRIER VARCHAR(64) NOT NULL, - EMPLOYEE INTEGER REFERENCES fulltimeemployees, + EMPLOYEE INTEGER, PLANTYPE VARCHAR(8), - CONSTRAINT MEDINS_PK PRIMARY KEY (DATASTORE_IDENTITY) + CONSTRAINT MEDINS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT MEDINS_EMPLOYEE FOREIGN KEY (EMPLOYEE) + REFERENCES fulltimeemployees (DATASTORE_IDENTITY) ); CREATE TABLE dentalinsurance ( DATASTORE_IDENTITY INTEGER NOT NULL, INSID INTEGER, CARRIER VARCHAR(64) NOT NULL, - EMPLOYEE INTEGER REFERENCES fulltimeemployees, + EMPLOYEE INTEGER, LIFETIME_ORTHO_BENEFIT DECIMAL(22,3), - CONSTRAINT DENTINS_PK PRIMARY KEY (DATASTORE_IDENTITY) + CONSTRAINT DENTINS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT DENTINS_EMPLOYEE FOREIGN KEY (EMPLOYEE) + REFERENCES fulltimeemployees (DATASTORE_IDENTITY) ); CREATE TABLE projects ( DATASTORE_IDENTITY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, - PROJID INTEGER UNIQUE NOT NULL, + PROJID INTEGER NOT NULL, NAME VARCHAR(32) NOT NULL, BUDGET DECIMAL(11,2) NOT NULL, + CONSTRAINT PROJS_UK UNIQUE (PROJID), CONSTRAINT PROJS_PK PRIMARY KEY (DATASTORE_IDENTITY) ); @@ -164,21 +194,27 @@ ); CREATE TABLE employee_phoneno_type ( - EMPID INTEGER REFERENCES persons NOT NULL, + EMPID INTEGER NOT NULL, PHONENO VARCHAR(16) NOT NULL, - TYPE VARCHAR(16) NOT NULL + TYPE VARCHAR(16) NOT NULL, + CONSTRAINT EMP_PHNO_PERSONS FOREIGN KEY (EMPID) + REFERENCES persons (DATASTORE_IDENTITY) ); CREATE TABLE fulltime_employee_phoneno_type ( - EMPID INTEGER REFERENCES fulltimeemployees NOT NULL, + EMPID INTEGER NOT NULL, PHONENO VARCHAR(16) NOT NULL, - TYPE VARCHAR(16) NOT NULL + TYPE VARCHAR(16) NOT NULL, + CONSTRAINT FTEMP_PHNO_FTEMP FOREIGN KEY (EMPID) + REFERENCES fulltimeemployees (DATASTORE_IDENTITY) ); CREATE TABLE parttime_employee_phoneno_type ( EMPID INTEGER REFERENCES parttimeemployees NOT NULL, PHONENO VARCHAR(16) NOT NULL, - TYPE VARCHAR(16) NOT NULL + TYPE VARCHAR(16) NOT NULL, + CONSTRAINT PTEMP_PHNO_PTEMP FOREIGN KEY (EMPID) + REFERENCES parttimeemployees (DATASTORE_IDENTITY) ); ALTER TABLE project_reviewer Index: src/sql/derby/datastoreidentity/schema3.sql =================================================================== --- src/sql/derby/datastoreidentity/schema3.sql (revision 373931) +++ src/sql/derby/datastoreidentity/schema3.sql (working copy) @@ -52,13 +52,15 @@ ID INTEGER, NAME VARCHAR(32) NOT NULL, EMP_OF_THE_MONTH INTEGER, - COMPANYID INTEGER REFERENCES companies, - CONSTRAINT DEPTS_PK PRIMARY KEY (DATASTORE_IDENTITY) + COMPANYID INTEGER, + CONSTRAINT DEPTS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT DEPTS_COMPANYID FOREIGN KEY (COMPANYID) + REFERENCES companies (DATASTORE_IDENTITY) ); CREATE TABLE persons ( DATASTORE_IDENTITY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, - PERSONID INTEGER UNIQUE NOT NULL, + PERSONID INTEGER NOT NULL, FIRSTNAME VARCHAR(32) NOT NULL, LASTNAME VARCHAR(32) NOT NULL, MIDDLENAME VARCHAR(32), @@ -69,6 +71,7 @@ STATE CHAR(2), ZIPCODE CHAR(5), COUNTRY VARCHAR(64), + CONSTRAINT PERS_UK UNIQUE (PERSONID), CONSTRAINT PERS_PK PRIMARY KEY (DATASTORE_IDENTITY) ); @@ -76,14 +79,25 @@ DATASTORE_IDENTITY INTEGER NOT NULL, HIREDATE VARCHAR(32), WEEKLYHOURS DOUBLE, - DEPARTMENT INTEGER REFERENCES departments, - FUNDINGDEPT INTEGER REFERENCES departments, - MANAGER INTEGER REFERENCES persons, - MENTOR INTEGER REFERENCES persons, - HRADVISOR INTEGER REFERENCES persons, + DEPARTMENT INTEGER, + FUNDINGDEPT INTEGER, + MANAGER INTEGER, + MENTOR INTEGER, + HRADVISOR INTEGER, WAGE DOUBLE, CONSTRAINT PTEMPS_PK PRIMARY KEY (DATASTORE_IDENTITY), - CONSTRAINT PTEMPS_FK FOREIGN KEY (DATASTORE_IDENTITY) REFERENCES persons + CONSTRAINT PTEMPS_FK FOREIGN KEY (DATASTORE_IDENTITY) + REFERENCES persons (DATASTORE_IDENTITY), + CONSTRAINT PTEMPS_DEPARTMENT FOREIGN KEY (DEPARTMENT) + REFERENCES departments (DATASTORE_IDENTITY), + CONSTRAINT PTEMPS_FUNDINGDEPT FOREIGN KEY (FUNDINGDEPT) + REFERENCES departments (DATASTORE_IDENTITY), + CONSTRAINT PTEMPS_MANAGER FOREIGN KEY (MANAGER) + REFERENCES parttimeemployees (DATASTORE_IDENTITY), + CONSTRAINT PTEMPS_MENTOR FOREIGN KEY (MENTOR) + REFERENCES parttimeemployees (DATASTORE_IDENTITY), + CONSTRAINT PTEMPS_HRADVISOR FOREIGN KEY (HRADVISOR) + REFERENCES parttimeemployees (DATASTORE_IDENTITY) ); CREATE TABLE fulltimeemployees ( @@ -97,32 +111,48 @@ HRADVISOR INTEGER REFERENCES persons, SALARY DOUBLE, CONSTRAINT FTEMPS_PK PRIMARY KEY (DATASTORE_IDENTITY), - CONSTRAINT FTEMPS_FK FOREIGN KEY (DATASTORE_IDENTITY) REFERENCES persons + CONSTRAINT FTEMPS_FK FOREIGN KEY (DATASTORE_IDENTITY) + REFERENCES persons (DATASTORE_IDENTITY), + CONSTRAINT FTEMPS_DEPARTMENT FOREIGN KEY (DEPARTMENT) + REFERENCES departments (DATASTORE_IDENTITY), + CONSTRAINT FTEMPS_FUNDINGDEPT FOREIGN KEY (FUNDINGDEPT) + REFERENCES departments (DATASTORE_IDENTITY), + CONSTRAINT FTEMPS_MANAGER FOREIGN KEY (MANAGER) + REFERENCES fulltimeemployees (DATASTORE_IDENTITY), + CONSTRAINT FTEMPS_MENTOR FOREIGN KEY (MENTOR) + REFERENCES fulltimeemployees (DATASTORE_IDENTITY), + CONSTRAINT FTEMPS_HRADVISOR FOREIGN KEY (HRADVISOR) + REFERENCES fulltimeemployees (DATASTORE_IDENTITY) ); CREATE TABLE medicalinsurance ( DATASTORE_IDENTITY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, INSID INTEGER, CARRIER VARCHAR(64) NOT NULL, - EMPLOYEE INTEGER REFERENCES persons, + EMPLOYEE INTEGER, PLANTYPE VARCHAR(8), - CONSTRAINT MEDINS_PK PRIMARY KEY (DATASTORE_IDENTITY) + CONSTRAINT MEDINS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT MEDINS_EMPLOYEE FOREIGN KEY (EMPLOYEE) + REFERENCES fulltimeemployees (DATASTORE_IDENTITY) ); CREATE TABLE dentalinsurance ( DATASTORE_IDENTITY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, INSID INTEGER, CARRIER VARCHAR(64) NOT NULL, - EMPLOYEE INTEGER REFERENCES persons, + EMPLOYEE INTEGER, LIFETIME_ORTHO_BENEFIT DECIMAL(22,3), - CONSTRAINT DENTINS_PK PRIMARY KEY (DATASTORE_IDENTITY) + CONSTRAINT DENTINS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT DENTINS_EMPLOYEE FOREIGN KEY (EMPLOYEE) + REFERENCES fulltimeemployees (DATASTORE_IDENTITY) ); CREATE TABLE projects ( DATASTORE_IDENTITY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, - PROJID INTEGER UNIQUE NOT NULL, + PROJID INTEGER NOT NULL, NAME VARCHAR(32) NOT NULL, BUDGET DECIMAL(11,2) NOT NULL, + CONSTRAINT PROJS_UK UNIQUE (PROJID), CONSTRAINT PROJS_PK PRIMARY KEY (DATASTORE_IDENTITY) ); @@ -137,9 +167,11 @@ ); CREATE TABLE employee_phoneno_type ( - EMPID INTEGER REFERENCES persons NOT NULL, + EMPID INTEGER NOT NULL, PHONENO VARCHAR(16) NOT NULL, - TYPE VARCHAR(16) NOT NULL + TYPE VARCHAR(16) NOT NULL, + CONSTRAINT EMP_PHNO_PERSONS FOREIGN KEY (EMPID) + REFERENCES persons (DATASTORE_IDENTITY) ); ALTER TABLE project_reviewer Index: src/sql/derby/datastoreidentity/schema4.sql =================================================================== --- src/sql/derby/datastoreidentity/schema4.sql (revision 373931) +++ src/sql/derby/datastoreidentity/schema4.sql (working copy) @@ -47,13 +47,15 @@ ID INTEGER, NAME VARCHAR(32) NOT NULL, EMP_OF_THE_MONTH INTEGER, - COMPANYID INTEGER REFERENCES companies, - CONSTRAINT DEPTS_PK PRIMARY KEY (DATASTORE_IDENTITY) + COMPANYID INTEGER, + CONSTRAINT DEPTS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT DEPTS_COMPANYID FOREIGN KEY (COMPANYID) + REFERENCES companies (DATASTORE_IDENTITY) ); CREATE TABLE persons ( DATASTORE_IDENTITY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, - PERSONID INTEGER UNIQUE NOT NULL, + PERSONID INTEGER NOT NULL, FIRSTNAME VARCHAR(32) NOT NULL, LASTNAME VARCHAR(32) NOT NULL, MIDDLENAME VARCHAR(32), @@ -64,42 +66,57 @@ STATE CHAR(2), ZIPCODE CHAR(5), COUNTRY VARCHAR(64), - CONSTRAINT PERS_PK PRIMARY KEY (DATASTORE_IDENTITY) + CONSTRAINT PERS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT PERS_UK UNIQUE (PERSONID) ); CREATE TABLE employees ( DATASTORE_IDENTITY INTEGER NOT NULL, HIREDATE VARCHAR(32), WEEKLYHOURS DOUBLE, - DEPARTMENT INTEGER REFERENCES departments, - FUNDINGDEPT INTEGER REFERENCES departments, - MANAGER INTEGER REFERENCES persons, - MENTOR INTEGER REFERENCES persons, - HRADVISOR INTEGER REFERENCES persons, + DEPARTMENT INTEGER, + FUNDINGDEPT INTEGER, + MANAGER INTEGER, + MENTOR INTEGER, + HRADVISOR INTEGER, WAGE DOUBLE, SALARY DOUBLE, DISCRIMINATOR varchar(64) NOT NULL, CONSTRAINT EMPS_PK PRIMARY KEY (DATASTORE_IDENTITY), - CONSTRAINT EMPS_FK FOREIGN KEY (DATASTORE_IDENTITY) REFERENCES persons + CONSTRAINT EMPS_FK FOREIGN KEY (DATASTORE_IDENTITY) + REFERENCES persons (DATASTORE_IDENTITY), + CONSTRAINT EMPS_DEPARTMENT FOREIGN KEY (DEPARTMENT) + REFERENCES departments (DATASTORE_IDENTITY), + CONSTRAINT EMPS_FUNDINGDEPT FOREIGN KEY (FUNDINGDEPT) + REFERENCES departments (DATASTORE_IDENTITY), + CONSTRAINT EMPS_MANAGER FOREIGN KEY (MANAGER) + REFERENCES persons (DATASTORE_IDENTITY), + CONSTRAINT EMPS_MENTOR FOREIGN KEY (MENTOR) + REFERENCES persons (DATASTORE_IDENTITY), + CONSTRAINT EMPS_HRADVISOR FOREIGN KEY (HRADVISOR) + REFERENCES persons (DATASTORE_IDENTITY) ); CREATE TABLE insuranceplans ( DATASTORE_IDENTITY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, INSID INTEGER, CARRIER VARCHAR(64) NOT NULL, - EMPLOYEE INTEGER REFERENCES persons, + EMPLOYEE INTEGER, PLANTYPE VARCHAR(8), LIFETIME_ORTHO_BENEFIT DECIMAL(22,3), DISCRIMINATOR varchar(64) NOT NULL, - CONSTRAINT INS_PK PRIMARY KEY (DATASTORE_IDENTITY) + CONSTRAINT INS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT INS_EMPLOYEE FOREIGN KEY (EMPLOYEE) + REFERENCES persons (DATASTORE_IDENTITY) ); CREATE TABLE projects ( DATASTORE_IDENTITY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, - PROJID INTEGER UNIQUE NOT NULL, + PROJID INTEGER NOT NULL, NAME VARCHAR(32) NOT NULL, BUDGET DECIMAL(11,2) NOT NULL, - CONSTRAINT PROJS_PK PRIMARY KEY (DATASTORE_IDENTITY) + CONSTRAINT PROJS_PK PRIMARY KEY (DATASTORE_IDENTITY), + CONSTRAINT PROJS_UK UNIQUE (PROJID) ); CREATE TABLE project_reviewer ( @@ -113,9 +130,11 @@ ); CREATE TABLE employee_phoneno_type ( - EMPID INTEGER REFERENCES persons NOT NULL, + EMPID INTEGER NOT NULL, PHONENO VARCHAR(16) NOT NULL, - TYPE VARCHAR(16) NOT NULL + TYPE VARCHAR(16) NOT NULL, + CONSTRAINT employee_phoneno_type_EMPID FOREIGN KEY (EMPID) + REFERENCES persons (DATASTORE_IDENTITY) ); ALTER TABLE project_reviewer Index: src/sql/derby/datastoreidentity/schema.sql =================================================================== --- src/sql/derby/datastoreidentity/schema.sql (revision 373931) +++ src/sql/derby/datastoreidentity/schema.sql (working copy) @@ -144,7 +144,7 @@ CREATE TABLE persons ( DATASTORE_IDENTITY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, - PERSONID INTEGER UNIQUE NOT NULL, + PERSONID INTEGER NOT NULL, FIRSTNAME VARCHAR(32) NOT NULL, LASTNAME VARCHAR(32) NOT NULL, MIDDLENAME VARCHAR(32), @@ -165,7 +165,8 @@ SALARY REAL, WAGE REAL, DISCRIMINATOR varchar(64) NOT NULL, - CONSTRAINT EMPS_PK PRIMARY KEY (DATASTORE_IDENTITY) + CONSTRAINT PERS_UK UNIQUE (PERSONID), + CONSTRAINT PERS_PK PRIMARY KEY (DATASTORE_IDENTITY) ); CREATE TABLE insuranceplans ( @@ -181,9 +182,10 @@ CREATE TABLE projects ( DATASTORE_IDENTITY INTEGER NOT NULL GENERATED ALWAYS AS IDENTITY, - PROJID INTEGER UNIQUE NOT NULL, + PROJID INTEGER NOT NULL, NAME VARCHAR(32) NOT NULL, BUDGET DECIMAL(11,2) NOT NULL, + CONSTRAINT PROJS_UK UNIQUE (PROJID), CONSTRAINT PROJS_PK PRIMARY KEY (DATASTORE_IDENTITY) );