CODE
CODE
GO
GO
CREATE TABLE ESTATE_TYPE(
ESTATE_TYPE_ID INT PRIMARY KEY NOT NULL,
ESTATE_TYPE_NAME VARCHAR (30) NOT NULL,
ESTATE_ID INT NOT NULL,
FOREIGN KEY (ESTATE_ID) REFERENCES ESTATE(ESTATE_ID)
);
GO
CREATE TABLE ESTATE_STATUS (
ESTATE_STATUS_ID INT PRIMARY KEY NOT NULL,
ESTATE_STATUS_NAME VARCHAR(30) NOT NULL,
ESTATE_ID INT NOT NULL,
FOREIGN KEY (ESTATE_ID) REFERENCES ESTATE(ESTATE_ID))
;
GO
CREATE TABLE PROJECT(
PROJECT_ID INT PRIMARY KEY NOT NULL,
PROJECT_NAME VARCHAR (30) NOT NULL,
--CITY_ID INT NOT NULL,
EMPLOYEE_ID INT NOT NULL,
ESTATE_ID INT NOT NULL,
--FOREIGN KEY (CITY_ID) REFERENCES CITY(CITY_ID),
FOREIGN KEY (EMPLOYEE_ID) REFERENCES EMPLOYEE(EMPLOYEE_ID),
FOREIGN KEY (ESTATE_ID) REFERENCES ESTATE(ESTATE_ID)
);
GO
CREATE TABLE CITY(
CITY_ID INT PRIMARY KEY NOT NULL,
CITY_NAME VARCHAR (30) NOT NULL,
PROJECT_ID INT NOT NULL,
FOREIGN KEY (PROJECT_ID) REFERENCES PROJECT(PROJECT_ID));
GO
CREATE TABLE CLIENT (
CLIENT_ID INT PRIMARY KEY NOT NULL,
CLIENT_NAME VARCHAR (30) NOT NULL,
CLIENT_CONTACT_PERSON VARCHAR (30) NOT NULL,
CLIENT_PHONE_NUMBER VARCHAR (10) NOT NULL,
CLIENT_EMAIL VARCHAR (30) NOT NULL,
CLIENT_DETAILS VARCHAR (50) NOT NULL)
;
GO
--CREATE TABLE CONTACT (
-- CONTACT_ID INT PRIMARY KEY NOT NULL,
-- CONTACT_TIME DATETIME NOT NULL,
-- CONTACT_DETAILS VARCHAR (50) NOT NULL,
--CLIENT_ID INT NOT NULL,
--EMPLOYEE_ID INT NOT NULL,
--FOREIGN KEY (CLIENT_ID) REFERENCES CLIENT (CLIENT_ID),
--FOREIGN KEY (EMPLOYEE_ID) REFERENCES EMPLOYEE(EMPLOYEE_ID)
--);
GO
CREATE TABLE CONTRACT (
CONTRACT_ID INT PRIMARY KEY NOT NULL,
CONTRACT_DETAILS VARCHAR (50) NOT NULL,
NUMBER_OF_INVOICES VARCHAR (30) NOT NULL,
PAYMENT_AMOUNT DECIMAL (10,2) NOT NULL,
CONTRACT_DATES DATE NOT NULL,
CLIENT_ID INT NOT NULL,
CONTRACT_END_DATE DATE NOT NULL,
--PAYMENT_METHOD_ID INT NOT NULL,
FOREIGN KEY (CLIENT_ID) REFERENCES CLIENT (CLIENT_ID));
--FOREIGN KEY (PAYMENT_METHOD_ID) REFERENCES PAYMENT_METHOD(PAYMENT_METHOD_ID) );
GO
CREATE TABLE TRANSACTIONS (
TRANSACTION_ID INT PRIMARY KEY NOT NULL,
TRANSACTION_DATES DATETIME NOT NULL,
TRANSACTION_DETAILS VARCHAR(50) NOT NULL,
TRANSACTION_TYPE VARCHAR(50) NOT NULL,
CONTRACT_ID INT NOT NULL,
EMPLOYEE_ID INT NOT NULL,
CLIENT_ID INT NOT NULL,
FOREIGN KEY (CONTRACT_ID) REFERENCES CONTRACT(CONTRACT_ID),
FOREIGN KEY (EMPLOYEE_ID) REFERENCES EMPLOYEE (EMPLOYEE_ID),
FOREIGN KEY (CLIENT_ID) REFERENCES CLIENT (CLIENT_ID) );
GO
CREATE TABLE RENT (
--TRANSACTION_ID INT REFERENCES TRANSACTIONS (TRANSACTION_ID),
TRANSACTION_ID INT PRIMARY KEY NOT NULL,
RENT_ID INT NOT NULL,
LEASE_TERM INT NOT NULL,
MONTHLY_RENT INT NOT NULL,
CLIENT_ACTIONS VARCHAR(20) NOT NULL
CONSTRAINT FK_TRANSACTION_RENT FOREIGN KEY (TRANSACTION_ID) REFERENCES TRANSACTIONS
(TRANSACTION_ID));
GO
CREATE TABLE PURCHASE (
--TRANSACTION_ID INT REFERENCES TRANSACTIONS ( TRANSACTION_ID ),
TRANSACTION_ID INT PRIMARY KEY NOT NULL,
PURCHASE_ID INT NOT NULL,
PURCHAE_PRICE INT NOT NULL,
PURCHASE_DATES DATETIME NOT NULL
CONSTRAINT FK_TRANSACTION_PURCHASE FOREIGN KEY (TRANSACTION_ID) REFERENCES TRANSACTIONS
(TRANSACTION_ID));
GO
CREATE TABLE CONTRACT_INVOICES (
INVOICE_ID INT PRIMARY KEY,
INVOICE_DETAILS VARCHAR(50) NOT NULL,
INVOICE_AMOUNT MONEY NOT NULL,
INVOICE_DATES DATETIME NOT NULL,
CONTRACT_ID INT NOT NULL,
FOREIGN KEY (CONTRACT_ID) REFERENCES CONTRACT (CONTRACT_ID) );
GO
CREATE TABLE PAYMENT_METHOD(
PAYMENT_METHOD_ID INT PRIMARY KEY NOT NULL,
PAYMENT_METHOD VARCHAR (20) NOT NULL,
CONTRACT_ID INT NOT NULL,
FOREIGN KEY (CONTRACT_ID) REFERENCES CONTRACT (CONTRACT_ID));
--CREATE DATABASE TESTING;
GO
CREATE TABLE ESTATE_TYPE(
ESTATE_TYPE_ID INT PRIMARY KEY,
ESTATE_TYPE_NAME VARCHAR (30) NOT NULL,
ESTATE_ID INT NOT NULL,
FOREIGN KEY (ESTATE_ID) REFERENCES ESTATE(ESTATE_ID)
);
GO
CREATE TABLE ESTATE_STATUS (
ESTATE_STATUS_ID INT PRIMARY KEY,
ESTATE_STATUS_NAME VARCHAR(30) NOT NULL,
ESTATE_ID INT NOT NULL,
FOREIGN KEY (ESTATE_ID) REFERENCES ESTATE(ESTATE_ID))
;
GO
CREATE TABLE PROJECT(
PROJECT_ID INT PRIMARY KEY,
PROJECT_NAME VARCHAR (30) NOT NULL,
--CITY_ID INT NOT NULL,
EMPLOYEE_ID INT NOT NULL,
ESTATE_ID INT NOT NULL,
--FOREIGN KEY (CITY_ID) REFERENCES CITY(CITY_ID),
FOREIGN KEY (EMPLOYEE_ID) REFERENCES EMPLOYEE(EMPLOYEE_ID),
FOREIGN KEY (ESTATE_ID) REFERENCES ESTATE(ESTATE_ID)
);
GO
CREATE TABLE CITY(
CITY_ID INT PRIMARY KEY,
CITY_NAME VARCHAR (30) NOT NULL,
PROJECT_ID INT NOT NULL,
FOREIGN KEY (PROJECT_ID) REFERENCES PROJECT(PROJECT_ID));
GO
CREATE TABLE CLIENT (
CLIENT_ID INT PRIMARY KEY,
CLIENT_NAME VARCHAR (30) NOT NULL,
CLIENT_CONTACT_PERSON VARCHAR (30) NOT NULL,
CLIENT_PHONE_NUMBER VARCHAR (10) NOT NULL,
CLIENT_DOB DATE INT NOT NULL,
CLIENT_EMAIL VARCHAR (30) NOT NULL,
CLIENT_DETAILS VARCHAR (50) NOT NULL)
;
GO
--CREATE TABLE CONTACT (
-- CONTACT_ID INT PRIMARY KEY NOT NULL,
-- CONTACT_TIME DATETIME NOT NULL,
-- CONTACT_DETAILS VARCHAR (50) NOT NULL,
--CLIENT_ID INT NOT NULL,
--EMPLOYEE_ID INT NOT NULL,
--FOREIGN KEY (CLIENT_ID) REFERENCES CLIENT (CLIENT_ID),
--FOREIGN KEY (EMPLOYEE_ID) REFERENCES EMPLOYEE(EMPLOYEE_ID)
--);
GO
CREATE TABLE CONTRACT (
CONTRACT_ID INT PRIMARY KEY,
CONTRACT_DETAILS VARCHAR (50) NOT NULL,
NUMBER_OF_INVOICES VARCHAR (30) NOT NULL,
PAYMENT_AMOUNT DECIMAL (10,2) NOT NULL,
CONTRACT_DATES DATE NOT NULL,
CLIENT_ID INT NOT NULL,
END_DATE DATE NOT NULL,
--PAYMENT_METHOD_ID INT NOT NULL,
FOREIGN KEY (CLIENT_ID) REFERENCES CLIENT (CLIENT_ID));
--FOREIGN KEY (PAYMENT_METHOD_ID) REFERENCES PAYMENT_METHOD(PAYMENT_METHOD_ID) );
GO
CREATE TABLE TRANSACTIONS (
TRANSACTION_ID INT PRIMARY KEY,
TRANSACTION_DATES DATETIME NOT NULL,
TRANSACTION_DETAILS VARCHAR(50) NOT NULL,
TRANSACTION_TYPE VARCHAR(50) NOT NULL,
CONTRACT_ID INT NOT NULL,
EMPLOYEE_ID INT NOT NULL,
CLIENT_ID INT NOT NULL,
ESATE_ID INT NOT NULL,
FOREIGN KEY (CONTRACT_ID) REFERENCES CONTRACT(CONTRACT_ID),
FOREIGN KEY (EMPLOYEE_ID) REFERENCES EMPLOYEE (EMPLOYEE_ID),
FOREIGN KEY (CLIENT_ID) REFERENCES CLIENT (CLIENT_ID),
FOREIGN KEY (ESATE_ID) REFERENCES ESTATE (ESTATE_ID)
);
GO
CREATE TABLE RENT (
--TRANSACTION_ID INT REFERENCES TRANSACTIONS (TRANSACTION_ID),
TRANSACTION_ID INT PRIMARY KEY,
RENT_ID INT NOT NULL,
LEASE_TERM INT NOT NULL,
MONTHLY_RENT INT NOT NULL,
CLIENT_ACTIONS VARCHAR(20) NOT NULL
CONSTRAINT FK_TRANSACTION_RENT FOREIGN KEY (TRANSACTION_ID) REFERENCES TRANSACTIONS
(TRANSACTION_ID));
GO
CREATE TABLE PURCHASE (
--TRANSACTION_ID INT REFERENCES TRANSACTIONS ( TRANSACTION_ID ),
TRANSACTION_ID INT PRIMARY KEY,
PURCHASE_ID INT NOT NULL,
PURCHAE_PRICE INT NOT NULL,
PURCHASE_DATES DATETIME NOT NULL
CONSTRAINT FK_TRANSACTION_PURCHASE FOREIGN KEY (TRANSACTION_ID) REFERENCES TRANSACTIONS
(TRANSACTION_ID));
GO
CREATE TABLE CONTRACT_INVOICES (
INVOICE_ID INT PRIMARY KEY,
INVOICE_DETAILS VARCHAR(50) NOT NULL,
INVOICE_AMOUNT MONEY NOT NULL,
INVOICE_DATES DATETIME NOT NULL,
CONTRACT_ID INT NOT NULL,
FOREIGN KEY (CONTRACT_ID) REFERENCES CONTRACT (CONTRACT_ID) );
GO
CREATE TABLE PAYMENT_METHOD(
PAYMENT_METHOD_ID INT PRIMARY KEY,
PAYMENT_METHOD VARCHAR (20) NOT NULL,
CONTRACT_ID INT NOT NULL,
FOREIGN KEY (CONTRACT_ID) REFERENCES CONTRACT (CONTRACT_ID));
-----------------------------------------------------------------------------------------
CREATE TABLE EMPLOYEE (
EMPLOYEE_ID INT PRIMARY KEY,
EMPLOYEE_FULL_NAME VARCHAR (50) NOT NULL,
EMPLOYEE_EMAIL VARCHAR (25) NOT NULL,
EMPLOYEE_PHONE_NUMBER VARCHAR (10) NOT NULL,
EMPLOYEE_SALARY DECIMAL (4,0) NOT NULL,
EMPLOYEE_START_DATE DATE NOT NULL,
EMPLOYEE_TYPE VARCHAR (30) NOT NULL,
DEPARTMENT_ID INT NOT NULL,
DEPARTMENT_NAME VARCHAR (30) NOT NULL,
SALES_MANAGER_ID INT,
FOREIGN KEY (SALES_MANAGER_ID) REFERENCES EMPLOYEE(EMPLOYEE_ID));
GO
GO
GO
CREATE TABLE ESTATE_STATUS (
ESTATE_STATUS_ID INT PRIMARY KEY,
ESTATE_STATUS_NAME VARCHAR(30) NOT NULL,
--ESTATE_ID INT NOT NULL,
--FOREIGN KEY (ESTATE_ID) REFERENCES ESTATE(ESTATE_ID)
);
GO
CREATE TABLE CLIENT (
CLIENT_ID INT PRIMARY KEY,
CLIENT_NAME VARCHAR (30) NOT NULL,
CLIENT_CONTACT_PERSON VARCHAR (30) NOT NULL,
CLIENT_PHONE_NUMBER VARCHAR (10) NOT NULL,
CLIENT_DOB DATE NOT NULL,
CLIENT_EMAIL VARCHAR (30) NOT NULL,
CLIENT_DETAILS VARCHAR (50) NOT NULL
);
GO
CREATE TABLE PAYMENT_METHOD(
PAYMENT_METHOD_ID INT PRIMARY KEY,
PAYMENT_METHOD VARCHAR (20) NOT NULL,
--CONTRACT_ID INT NOT NULL,
--FOREIGN KEY (CONTRACT_ID) REFERENCES CONTRACT (CONTRACT_ID)
);
GO
GO
CREATE TABLE TRANSACTIONS (
TRANSACTION_ID INT PRIMARY KEY,
TRANSACTION_DATES DATETIME NOT NULL,
TRANSACTION_DETAILS VARCHAR(50) NOT NULL,
TRANSACTION_TYPE VARCHAR(50) NOT NULL,
CONTRACT_ID INT NOT NULL,
EMPLOYEE_ID INT NOT NULL,
CLIENT_ID INT NOT NULL,
ESATE_ID INT NOT NULL,
FOREIGN KEY (CONTRACT_ID) REFERENCES CONTRACT(CONTRACT_ID),
FOREIGN KEY (EMPLOYEE_ID) REFERENCES EMPLOYEE (EMPLOYEE_ID),
FOREIGN KEY (CLIENT_ID) REFERENCES CLIENT (CLIENT_ID),
FOREIGN KEY (ESATE_ID) REFERENCES ESTATE (ESTATE_ID)
);
GO
CREATE TABLE RENT (
--TRANSACTION_ID INT REFERENCES TRANSACTIONS (TRANSACTION_ID),
TRANSACTION_ID INT PRIMARY KEY,
RENT_ID INT NOT NULL,
LEASE_TERM INT NOT NULL,
MONTHLY_RENT INT NOT NULL,
CLIENT_ACTIONS VARCHAR(20) NOT NULL
CONSTRAINT FK_TRANSACTION_RENT FOREIGN KEY (TRANSACTION_ID) REFERENCES TRANSACTIONS
(TRANSACTION_ID));
GO
CREATE TABLE PURCHASE (
--TRANSACTION_ID INT REFERENCES TRANSACTIONS ( TRANSACTION_ID ),
TRANSACTION_ID INT PRIMARY KEY,
PURCHASE_ID INT NOT NULL,
PURCHAE_PRICE INT NOT NULL,
PURCHASE_DATES DATETIME NOT NULL
CONSTRAINT FK_TRANSACTION_PURCHASE FOREIGN KEY (TRANSACTION_ID) REFERENCES TRANSACTIONS
(TRANSACTION_ID));
GO
CREATE TABLE CONTRACT_INVOICES (
INVOICE_ID INT PRIMARY KEY,
INVOICE_DETAILS VARCHAR(50) NOT NULL,
INVOICE_AMOUNT MONEY NOT NULL,
INVOICE_DATES DATETIME NOT NULL,
CONTRACT_ID INT NOT NULL,
FOREIGN KEY (CONTRACT_ID) REFERENCES CONTRACT (CONTRACT_ID) );