create table Residents(
id_the_tenant number primary key not null,
last_name varchar2(255) not null, --Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ
first_name varchar2(255) not null,
passport_data char(10) not null,
date_of_birth date,
preferential_discount number not null --Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΌΠ°Ρ. ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
);
create table Payment_for_services(
id_services number primary key not null,
receipt_number number not null, --Π½Π΅Ρ ΠΈΠ½ΡΠ°, Π΅ΡΡΡ Π½Π°ΠΌΠ±Π΅Ρ
date_of_application date, client number not null, --ΠΏΠΊ ΡΠΈΠΏΠ° Π½Π°ΠΌΠ±Π΅Ρ
personal_account char(20),
name_of_service varchar2(255) not null,
constraint client_fk
foreign key (client)
references Residents(id_the_tenant)
);
create table Housing_and_utilities_departments(
id_department number primary key not null, --id Π»ΡΡΡΠ΅ Π½Π°ΠΌΠ±Π΅Ρ
department_speciality varchar2(255) not null,
department_security_level char(1) not null, --ΡΠΈΠΏΠ° 1-5
department_address varchar2(255) not null,
contact_details varchar2(255)
);
create table Staff(
id_employee number primary key not null, --id Π»ΡΡΡΠ΅ Π½Π°ΠΌΠ±Π΅Ρ
last_name varchar2(255) not null, --Π°ΡΠΎΠΌΠ°ΡΠ½ΠΎΡΡΡ
first_name varchar2(255) not null,
date_of_birth date,
phone_number varchar2(16) not null, --Π΄Π»Ρ ΠΊΡΠ°ΡΠΈΠ²ΠΎΠ³ΠΎ Π½ΠΎΠΌΠ΅ΡΠ°
email varchar2(255) not null,
department number not null, --ΠΏΠΊ ΡΠΈΠΏΠ° Π½Π°ΠΌΠ±Π΅Ρ
constraint department_fk
foreign key (department)
references Housing_and_utilities_departments(id_department)
);
create table Services(
id_services number primary key not null, --id Π»ΡΡΡΠ΅ Π½Π°ΠΌΠ±Π΅Ρ
types_of_services number not null, --ΠΏΠΊ ΡΠΈΠΏΠ° Π½Π°ΠΌΠ±Π΅Ρ
cost_of_services number not null, --Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΌΠ°Ρ. ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
data_of_the_service_provider number not null, --ΡΡΠΎ Π½Π΅ Π΄Π°ΡΠ° + ΡΠΈΠΏ ΠΏΠΊ
service_execution_time date not null, discount number, --Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΠΌΠ°Ρ. ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ
department number not null, --ΠΏΠΊ ΡΠΈΠΏΠ° Π½Π°ΠΌΠ±Π΅Ρ
constraint types_of_services_fk
foreign key (types_of_services)
references Payment_for_services(id_services),
constraint data_of_the_service_provider_fk
foreign key (data_of_the_service_provider)
references Staff(id_employee),
constraint department2_fk --ΠΈΠΌΡ ΡΠΊ Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ
foreign key (department)
references Housing_and_utilities_departments(id_department)
);
create table Complaints( --ΠΆΠ°Π»ΠΎΠ±Ρ
id_complaint number primary key not null, --id ΠΆΠ°Π»ΠΎΠ±Ρ
resident number not null, --ΠΆΠΈΠ»Π΅Ρ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π°Π»
complaint_text varchar2(255) not null, --ΡΠ΅ΠΊΡΡ ΠΆΠ°Π»ΠΎΠ±Ρ
date_of_complaint date not null, --Π΄Π°ΡΠ°
status varchar2(20) not null, --ΡΡΠ°ΡΡΡ
department number not null, --Π΄Π΅ΠΏΠ°ΡΡΠ°ΠΌΠ΅Π½Ρ
employee number, --ΠΊΡΠΎ Π½Π°Π·Π½Π°ΡΠ΅Π½
constraint department3_fk --ΠΈΠΌΡ ΡΠΊ Π½Π΅ ΠΏΠΎΠ²ΡΠΎΡΡΠ΅ΡΡΡ
foreign key (department)
references Housing_and_utilities_departments(id_department),
constraint resident_fk
foreign key (resident)
references Residents(id_the_tenant),
constraint employee_fk
foreign key (employee)
references Staff(id_employee)
);
--ΠΠ°ΠΌΠ΅Π½Π° ΡΠΈΠΏΠ° Π΄Π°Π½Π½ΡΡ
ΠΏΠΊ
alter table Services
drop CONSTRAINT types_of_services_fk; --ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΡΠΊ
alter table Payment_for_services --ΡΠ΄Π°Π»ΡΠ΅ΠΌ ΠΏΠΊ
drop primary key;
alter table Payment_for_services
modify id_services varchar2(10); --ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΈΠΏ ΠΏΠΊ
alter table Services
modify types_of_services varchar2(10); --ΠΌΠ΅Π½ΡΠ΅ΠΌ ΡΠΈΠΏ ΡΠΊ
alter table Payment_for_services --Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΠΏΠΊ
add CONSTRAINT id_services_pk
primary key (id_services);
alter table Services
add CONSTRAINT types_of_services_fk --Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΠΌ ΡΠΊ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ
foreign key (types_of_services)
references Payment_for_services(id_services);