[02] Added schema sql
Signed-off-by: Jim Martens <github@2martens.de>
This commit is contained in:
parent
95f0478aa9
commit
a8290b7d6e
|
@ -0,0 +1,80 @@
|
||||||
|
CREATE TABLE EstateAgent (
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
address VARCHAR(255) NOT NULL,
|
||||||
|
login VARCHAR(255) PRIMARY KEY NOT NULL,
|
||||||
|
password VARCHAR(255) NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Estate (
|
||||||
|
ID int NOT NULL PRIMARY KEY,
|
||||||
|
city VARCHAR(255) NOT NULL,
|
||||||
|
postalCode VARCHAR(5) NOT NULL,
|
||||||
|
street VARCHAR(255) NOT NULL,
|
||||||
|
streetNumber int NOT NULL,
|
||||||
|
squareArea int NOT NULL,
|
||||||
|
agent VARCHAR(255),
|
||||||
|
FOREIGN KEY (agent) REFERENCES EstateAgent(login)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Apartment (
|
||||||
|
ID int NOT NULL PRIMARY KEY,
|
||||||
|
floor int NOT NULL,
|
||||||
|
rent int NOT NULL,
|
||||||
|
rooms int NOT NULL,
|
||||||
|
balcony SMALLINT NOT NULL,
|
||||||
|
builtInKitchen SMALLINT NOT NULL ,
|
||||||
|
FOREIGN KEY (ID) REFERENCES Estate(ID)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE House (
|
||||||
|
ID int NOT NULL PRIMARY KEY,
|
||||||
|
price int NOT NULL,
|
||||||
|
garden SMALLINT NOT NULL,
|
||||||
|
FOREIGN KEY (ID) REFERENCES Estate(ID)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Contract (
|
||||||
|
contractNumber int NOT NULL PRIMARY KEY,
|
||||||
|
date DATE NOT NULL,
|
||||||
|
place VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE PurchaseContract (
|
||||||
|
contractNumber int NOT NULL PRIMARY KEY,
|
||||||
|
numberOfInstallments int NOT NULL,
|
||||||
|
interestRate int NOT NULL,
|
||||||
|
FOREIGN KEY (contractNumber) REFERENCES Contract(contractNumber)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE TenancyContract (
|
||||||
|
contractNumber int NOT NULL PRIMARY KEY,
|
||||||
|
startDate DATE NOT NULL,
|
||||||
|
duration int NOT NULL,
|
||||||
|
additionalCosts int NOT NULL,
|
||||||
|
FOREIGN KEY (contractNumber) REFERENCES Contract(contractNumber)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Person (
|
||||||
|
ID int NOT NULL PRIMARY KEY,
|
||||||
|
firstName VARCHAR(255) NOT NULL,
|
||||||
|
name VARCHAR(255) NOT NULL,
|
||||||
|
address VARCHAR(255) NOT NULL
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Sales (
|
||||||
|
contractNumber int NOT NULL PRIMARY KEY,
|
||||||
|
personID int NOT NULL,
|
||||||
|
house int UNIQUE NOT NULL,
|
||||||
|
FOREIGN KEY (contractNumber) REFERENCES PurchaseContract(contractNumber),
|
||||||
|
FOREIGN KEY (personID) REFERENCES Person(ID),
|
||||||
|
FOREIGN KEY (house) REFERENCES House(ID)
|
||||||
|
);
|
||||||
|
|
||||||
|
CREATE TABLE Rentals (
|
||||||
|
contractNumber int NOT NULL PRIMARY KEY,
|
||||||
|
personID int NOT NULL,
|
||||||
|
apartment int UNIQUE NOT NULL,
|
||||||
|
FOREIGN KEY (contractNumber) REFERENCES TenancyContract(contractNumber),
|
||||||
|
FOREIGN KEY (personID) REFERENCES Person(ID),
|
||||||
|
FOREIGN KEY (apartment) REFERENCES Apartment(ID)
|
||||||
|
);
|
Loading…
Reference in New Issue