Sei sulla pagina 1di 3

CREATE TABLE Users

(
UsersId VARCHAR2(5) NOT NULL,
FirstName VARCHAR2(10) NOT NULL,
LastName VARCHAR2(10) NOT NULL,
UsersEmail VARCHAR2(30) NOT NULL,
PRIMARY KEY (UsersId)
);

CREATE TABLE Country


(
CountryId VARCHAR2(5) NOT NULL,
CountryName VARCHAR2(10) NOT NULL,
PRIMARY KEY (CountryId)
);

CREATE TABLE Satellite


(
SatelliteId VARCHAR2(5) NOT NULL,
SatelliteName VARCHAR2(10) NOT NULL,
PRIMARY KEY (SatelliteId)
);

CREATE TABLE WeatherStation


(
WeatherStationId VARCHAR2(5) NOT NULL,
WeatherStationName VARCHAR2(10) NOT NULL,
PRIMARY KEY (WeatherStationId)
);

CREATE TABLE Server


(
ServerLocation VARCHAR2(10) NOT NULL,
ServerId VARCHAR2(5) NOT NULL,
WeatherStationId VARCHAR2(5) NOT NULL,
PRIMARY KEY (ServerId),
FOREIGN KEY (WeatherStationId) REFERENCES WeatherStation(WeatherStationId)
);

CREATE TABLE UsersUContact


(
UContact1 number(10) NOT NULL,
UContact2 number(10),
UContact3 number(10),
UsersId VARCHAR2(5) NOT NULL,
PRIMARY KEY (UContact1, UsersId),
FOREIGN KEY (UsersId) REFERENCES Users(UsersId)
);

CREATE TABLE City


(
CityPincode NUMBER(6) NOT NULL,
CityName VARCHAR2(10) NOT NULL,
CityLatitude NUMBER(5,2) NOT NULL,
CityLongitude NUMBER(5,2) NOT NULL,
CountryId VARCHAR2(5) NOT NULL,
PRIMARY KEY (CityPincode),
FOREIGN KEY (CountryId) REFERENCES Country(CountryId)
);

CREATE TABLE Selects


(
UsersId VARCHAR2(5) NOT NULL,
CityPincode NUMBER(6) NOT NULL,
PRIMARY KEY (UsersId, CityPincode),
FOREIGN KEY (UsersId) REFERENCES Users(UsersId),
FOREIGN KEY (CityPincode) REFERENCES City(CityPincode)
);

CREATE TABLE HourlyForecastLog


(
StartDateTime TIMESTAMP NOT NULL,
Humidity NUMBER(5,2) NOT NULL,
Visibility VARCHAR2(10) NOT NULL,
Pressure NUMBER(5,2) NOT NULL,
WindSpeed NUMBER(5,2) NOT NULL,
WindDirection VARCHAR2(2) NOT NULL,
Temperature NUMBER(5,2) NOT NULL,
FeelsLikeTemperature NUMBER(5,2) NOT NULL,
WeatherStatus VARCHAR2(10) NOT NULL,
CityPincode NUMBER(6,0) NOT NULL,
PRIMARY KEY (CityPincode, StartDateTime),
FOREIGN KEY (CityPincode) REFERENCES City(CityPincode)
);

CREATE TABLE DailyForecastLog


(
CalendarDate DATE NOT NULL,
SunriseTime TIMESTAMP NOT NULL,
SunsetTime TIMESTAMP NOT NULL,
AverageHumidity NUMBER(5,2) NOT NULL,
MaxTemperature NUMBER(5,2) NOT NULL,
MinTemperature NUMBER(5,2) NOT NULL,
WeatherStatus VARCHAR2(10) NOT NULL,
CityPincode NUMBER(6) NOT NULL,
PRIMARY KEY (CalendarDate,CityPincode),
FOREIGN KEY (CityPincode) REFERENCES City(CityPincode)
);

CREATE TABLE Employee


(
EmployeeId VARCHAR2(5) NOT NULL,
EmpFirstName VARCHAR2(10) NOT NULL,
EmpLastName VARCHAR2(10) NOT NULL,
EmpDOB DATE NOT NULL,
Designation VARCHAR2(20) NOT NULL,
ServerId VARCHAR2(5) NOT NULL,
WeatherStationId VARCHAR2(5) NOT NULL,
ManagerId VARCHAR2(5),
PRIMARY KEY (EmployeeId),
FOREIGN KEY (ServerId) REFERENCES Server(ServerId),
FOREIGN KEY (WeatherStationId) REFERENCES WeatherStation(WeatherStationId),
FOREIGN KEY (ManagerId) REFERENCES Employee(EmployeeId)
);

CREATE TABLE Employee_EmpContact


(
EmpContact1 NUMBER(10) NOT NULL,
EmpContact2 NUMBER(10),
EmpContact3 NUMBER(10),
EmployeeId VARCHAR2(5) NOT NULL,
PRIMARY KEY (EmpContact1, EmployeeId),
FOREIGN KEY (EmployeeId) REFERENCES Employee(EmployeeId)
);

CREATE TABLE GetsFrom


(
SatelliteId VARCHAR2(5) NOT NULL,
ServerId VARCHAR2(5) NOT NULL,
PRIMARY KEY(ServerId,SatelliteId),
FOREIGN KEY(SatelliteId) REFERENCES Satellite(SatelliteId),
FOREIGN KEY(ServerId) REFERENCES Server(ServerId)
);

CREATE TABLE GetsHourly


(
CityPincode NUMBER(6) NOT NULL,
StartDateTime TIMESTAMP NOT NULL,
ServerId VARCHAR2(5) NOT NULL,
PRIMARY KEY(CityPincode,StartDateTime,ServerId),
FOREIGN KEY(CityPincode,StartDateTime) REFERENCES
HourlyForecastLog(CityPincode,StartDateTime),
FOREIGN KEY(ServerId) REFERENCES Server(ServerId)
);

CREATE TABLE GetsDaily


(
CityPincode NUMBER(6) NOT NULL,
CalendarDate DATE NOT NULL,
ServerId VARCHAR2(5) NOT NULL,
PRIMARY KEY(CalendarDate,CityPincode,ServerId),
FOREIGN KEY(CalendarDate,CityPincode) REFERENCES
DailyForecastLog(CalendarDate,CityPincode),
FOREIGN KEY(ServerId) REFERENCES Server(ServerId)
);

Potrebbero piacerti anche