-- SQL saved by Erkka 1.2 in Thu Nov 23 10:45:02 EET 2006 DROP TABLE Kuvaillaan ; DROP TABLE Tehdaan ; DROP TABLE Tavara ; DROP TABLE Tyo ; DROP TABLE Puhelinnumero ; DROP TABLE Tyovaihe ; DROP TABLE Paikka ; DROP TABLE Tyyppi ; DROP TABLE Ominaisuus ; DROP TABLE Henkilo ; CREATE TABLE Henkilo ( Etunimi VARCHAR(100) NOT NULL, Sukunimi VARCHAR(100) NOT NULL, AsiakasID INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL, CONSTRAINT Henkilo_PK PRIMARY KEY (AsiakasID) ) ; CREATE TABLE Ominaisuus ( Ominaisuusnimi VARCHAR(50) NOT NULL, OminaisuusID INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL, CONSTRAINT Ominaisuus_PK PRIMARY KEY (OminaisuusID) ) ; CREATE TABLE Tyyppi ( Tyyppinimi VARCHAR(50) NOT NULL, TyyppiID INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL, CONSTRAINT Tyyppi_PK PRIMARY KEY (TyyppiID) ) ; CREATE TABLE Paikka ( LokeroNro INTEGER NOT NULL, HyllyNro INTEGER NOT NULL, CONSTRAINT Paikka_PK PRIMARY KEY (LokeroNro,HyllyNro) ) ; CREATE TABLE Tyovaihe ( Kuvaus VARCHAR(100) NOT NULL, TyovaiheID INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL, CONSTRAINT Tyovaihe_PK PRIMARY KEY (TyovaiheID) ) ; CREATE TABLE Puhelinnumero ( Loppuosa VARCHAR(15) NOT NULL, Suuntanumero VARCHAR(8) NOT NULL, Henkilo_AsiakasID INTEGER NOT NULL, CONSTRAINT Puhelinnumero_PK PRIMARY KEY (Loppuosa,Suuntanumero), CONSTRAINT Puhelinnumero_Henkilo_AsiakasID_FK FOREIGN KEY (Henkilo_AsiakasID) REFERENCES Henkilo (AsiakasID) ON DELETE NO ACTION ON UPDATE CASCADE ) ; CREATE TABLE Tyo ( Kesto NUMERIC(3,1) NOT NULL, Tehtavankuvaus VARCHAR(250) NOT NULL, Hinta NUMERIC(6,2) NOT NULL, TyoID INTEGER GENERATED BY DEFAULT AS IDENTITY NOT NULL, Henkilo_AsiakasID INTEGER NOT NULL, CONSTRAINT Tyo_PK PRIMARY KEY (TyoID), CONSTRAINT Tyo_Henkilo_AsiakasID_FK FOREIGN KEY (Henkilo_AsiakasID) REFERENCES Henkilo (AsiakasID) ON DELETE NO ACTION ON UPDATE CASCADE ) ; CREATE TABLE Tavara ( LapunNro INTEGER NOT NULL, Tyo_TyoID INTEGER NOT NULL, Tyyppi_TyyppiID INTEGER NOT NULL, Paikka_LokeroNro INTEGER NOT NULL, Paikka_HyllyNro INTEGER NOT NULL, CONSTRAINT Tavara_PK PRIMARY KEY (LapunNro), CONSTRAINT Tavara_Tyo_TyoID_FK FOREIGN KEY (Tyo_TyoID) REFERENCES Tyo (TyoID) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT Tavara_Tyyppi_TyyppiID_FK FOREIGN KEY (Tyyppi_TyyppiID) REFERENCES Tyyppi (TyyppiID) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT Tavara_Paikka_LokeroNro_FK FOREIGN KEY (Paikka_LokeroNro,Paikka_HyllyNro) REFERENCES Paikka (LokeroNro,HyllyNro) ON DELETE NO ACTION ON UPDATE CASCADE ) ; CREATE TABLE Tehdaan ( Pvm DATE NOT NULL, Tyo_TyoID INTEGER NOT NULL, Tyovaihe_TyovaiheID INTEGER NOT NULL, CONSTRAINT Tehdaan_PK PRIMARY KEY (Tyo_TyoID,Tyovaihe_TyovaiheID), CONSTRAINT Tehdaan_Tyo_FK FOREIGN KEY (Tyo_TyoID) REFERENCES Tyo (TyoID) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT Tehdaan_Tyovaihe_FK FOREIGN KEY (Tyovaihe_TyovaiheID) REFERENCES Tyovaihe (TyovaiheID) ON DELETE NO ACTION ON UPDATE CASCADE ) ; CREATE TABLE Kuvaillaan ( Arvo VARCHAR(250) NOT NULL, Tavara_LapunNro INTEGER NOT NULL, Ominaisuus_OminaisuusID INTEGER NOT NULL, CONSTRAINT Kuvaillaan_PK PRIMARY KEY (Tavara_LapunNro,Ominaisuus_OminaisuusID), CONSTRAINT Kuvaillaan_Tavara_FK FOREIGN KEY (Tavara_LapunNro) REFERENCES Tavara (LapunNro) ON DELETE NO ACTION ON UPDATE CASCADE, CONSTRAINT Kuvaillaan_Ominaisuus_FK FOREIGN KEY (Ominaisuus_OminaisuusID) REFERENCES Ominaisuus (OminaisuusID) ON DELETE NO ACTION ON UPDATE CASCADE ) ;