| 1 |
|
|---|
| 2 | drop schema if exists project_2425;
|
|---|
| 3 |
|
|---|
| 4 | DROP TABLE IF EXISTS project_2425.Travel_pol CASCADE;
|
|---|
| 5 | DROP TABLE IF EXISTS project_2425.Property_pol CASCADE;
|
|---|
| 6 | DROP TABLE IF EXISTS project_2425.Auto_pol CASCADE;
|
|---|
| 7 | DROP TABLE IF EXISTS project_2425.Payment CASCADE;
|
|---|
| 8 | DROP TABLE IF EXISTS project_2425.Policy CASCADE;
|
|---|
| 9 | DROP TABLE IF EXISTS project_2425.Covers CASCADE;
|
|---|
| 10 | DROP TABLE IF EXISTS project_2425.Package CASCADE;
|
|---|
| 11 | DROP TABLE IF EXISTS project_2425.Policy_Holder CASCADE;
|
|---|
| 12 | DROP TABLE IF EXISTS project_2425.Customer CASCADE;
|
|---|
| 13 | DROP TABLE IF EXISTS project_2425.Vehicle CASCADE;
|
|---|
| 14 | DROP TABLE IF EXISTS project_2425.Property CASCADE;
|
|---|
| 15 | DROP TABLE IF EXISTS project_2425.Pol_osi CASCADE;
|
|---|
| 16 |
|
|---|
| 17 | create schema project_2425;
|
|---|
| 18 |
|
|---|
| 19 | -- Клиент (user account)
|
|---|
| 20 | CREATE TABLE project_2425.Customer (
|
|---|
| 21 | c_id BIGSERIAL PRIMARY KEY,
|
|---|
| 22 | name VARCHAR(100) NOT NULL,
|
|---|
| 23 | email VARCHAR(255) UNIQUE NOT NULL,
|
|---|
| 24 | type VARCHAR(50) NOT NULL,
|
|---|
| 25 | pass VARCHAR(255) NOT NULL
|
|---|
| 26 | );
|
|---|
| 27 |
|
|---|
| 28 | -- Полиса носител (осигуреник кој склучува договор)
|
|---|
| 29 | CREATE TABLE project_2425.Pol_dog (
|
|---|
| 30 | d_embg CHAR(13) PRIMARY KEY, -- личен број
|
|---|
| 31 | name VARCHAR(100) NOT NULL,
|
|---|
| 32 | surname VARCHAR(100) NOT NULL,
|
|---|
| 33 | birthdate DATE NOT NULL,
|
|---|
| 34 | kontakt VARCHAR(100),
|
|---|
| 35 | c_id BIGINT UNIQUE NOT NULL,
|
|---|
| 36 | CONSTRAINT fk_ph_customer
|
|---|
| 37 | FOREIGN KEY (c_id) REFERENCES project_2425.Customer(c_id)
|
|---|
| 38 | );
|
|---|
| 39 |
|
|---|
| 40 | -- Пакети (типови на осигурување)
|
|---|
| 41 | CREATE TABLE project_2425.Package (
|
|---|
| 42 | code VARCHAR(30) PRIMARY KEY,
|
|---|
| 43 | title VARCHAR(120) NOT NULL,
|
|---|
| 44 | type_pol VARCHAR(50) NOT NULL,
|
|---|
| 45 | total DECIMAL(12,2) NOT NULL,
|
|---|
| 46 | value DECIMAL(12,2) NOT NULL
|
|---|
| 47 | );
|
|---|
| 48 |
|
|---|
| 49 | -- Покритија
|
|---|
| 50 | CREATE TABLE project_2425.Covers (
|
|---|
| 51 | cov_id BIGSERIAL PRIMARY KEY,
|
|---|
| 52 | cov_type VARCHAR(80) NOT NULL,
|
|---|
| 53 | cov_amount DECIMAL(12,2) NOT NULL,
|
|---|
| 54 | package_code VARCHAR(30) NOT NULL,
|
|---|
| 55 | CONSTRAINT fk_covers_package
|
|---|
| 56 | FOREIGN KEY (package_code) REFERENCES project_2425.Package(code)
|
|---|
| 57 | );
|
|---|
| 58 |
|
|---|
| 59 | -- Полиси
|
|---|
| 60 | CREATE TABLE project_2425.Policy (
|
|---|
| 61 | p_id BIGSERIAL PRIMARY KEY,
|
|---|
| 62 | s_date DATE NOT NULL,
|
|---|
| 63 | e_date DATE NOT NULL,
|
|---|
| 64 | package_code VARCHAR(30) NOT NULL,
|
|---|
| 65 | d_embg CHAR(13) NOT NULL,
|
|---|
| 66 | CONSTRAINT fk_policy_package
|
|---|
| 67 | FOREIGN KEY (package_code) REFERENCES project_2425.Package(code),
|
|---|
| 68 | CONSTRAINT fk_policy_holder
|
|---|
| 69 | FOREIGN KEY (d_embg) REFERENCES project_2425.Pol_dog(d_embg)
|
|---|
| 70 | );
|
|---|
| 71 |
|
|---|
| 72 | -- Плаќања
|
|---|
| 73 | CREATE TABLE project_2425.Payment (
|
|---|
| 74 | payment_num BIGSERIAL PRIMARY KEY,
|
|---|
| 75 | visa_number VARCHAR(30),
|
|---|
| 76 | p_date DATE NOT NULL,
|
|---|
| 77 | p_amount DECIMAL(12,2) NOT NULL,
|
|---|
| 78 | policy_id BIGINT NOT NULL,
|
|---|
| 79 | CONSTRAINT fk_payment_policy
|
|---|
| 80 | FOREIGN KEY (policy_id) REFERENCES project_2425.Policy(p_id)
|
|---|
| 81 | );
|
|---|
| 82 |
|
|---|
| 83 | -- Возила
|
|---|
| 84 | CREATE TABLE project_2425.Vehicle (
|
|---|
| 85 | v_id BIGSERIAL PRIMARY KEY,
|
|---|
| 86 | model VARCHAR(80) NOT NULL,
|
|---|
| 87 | marka VARCHAR(80) NOT NULL,
|
|---|
| 88 | type VARCHAR(50),
|
|---|
| 89 | license_plate VARCHAR(20) UNIQUE NOT NULL
|
|---|
| 90 | );
|
|---|
| 91 |
|
|---|
| 92 | -- Неподвижен имот
|
|---|
| 93 | CREATE TABLE project_2425.Property (
|
|---|
| 94 | prop_id BIGSERIAL PRIMARY KEY,
|
|---|
| 95 | address VARCHAR(200) NOT NULL,
|
|---|
| 96 | floor INT,
|
|---|
| 97 | year_build INT,
|
|---|
| 98 | security bool
|
|---|
| 99 | );
|
|---|
| 100 |
|
|---|
| 101 | -- Осигурено лице (за патничко осигурување)
|
|---|
| 102 | CREATE TABLE project_2425.Pol_osi (
|
|---|
| 103 | o_embg CHAR(13) PRIMARY KEY,
|
|---|
| 104 | name VARCHAR(100) NOT NULL,
|
|---|
| 105 | surname VARCHAR(100) NOT NULL,
|
|---|
| 106 | birthdate DATE NOT NULL,
|
|---|
| 107 | kontakt VARCHAR(100)
|
|---|
| 108 | );
|
|---|
| 109 |
|
|---|
| 110 |
|
|---|
| 111 | -- Авто-полиси (поврзување Policy ↔️ Vehicle)
|
|---|
| 112 | CREATE TABLE project_2425.Auto_pol (
|
|---|
| 113 | a_id BIGSERIAL PRIMARY KEY,
|
|---|
| 114 | pol_id BIGINT NOT NULL,
|
|---|
| 115 | v_id BIGINT NOT NULL,
|
|---|
| 116 | CONSTRAINT fk_autopol_policy FOREIGN KEY (pol_id) REFERENCES project_2425.Policy(p_id),
|
|---|
| 117 | CONSTRAINT fk_autopol_vehicle FOREIGN KEY (v_id) REFERENCES project_2425.Vehicle(v_id),
|
|---|
| 118 | CONSTRAINT uq_autopol UNIQUE (pol_id, v_id)
|
|---|
| 119 | );
|
|---|
| 120 |
|
|---|
| 121 | -- Property-полиси (поврзување Policy ↔️ Property)
|
|---|
| 122 | CREATE TABLE project_2425.Property_pol (
|
|---|
| 123 | pr_id BIGSERIAL PRIMARY KEY,
|
|---|
| 124 | pol_id BIGINT NOT NULL,
|
|---|
| 125 | prop_id BIGINT NOT NULL,
|
|---|
| 126 | CONSTRAINT fk_proppol_policy FOREIGN KEY (pol_id) REFERENCES project_2425.Policy(p_id),
|
|---|
| 127 | CONSTRAINT fk_proppol_property FOREIGN KEY (prop_id) REFERENCES project_2425.Property(prop_id),
|
|---|
| 128 | CONSTRAINT uq_proppol UNIQUE (pol_id, prop_id)
|
|---|
| 129 | );
|
|---|
| 130 |
|
|---|
| 131 | -- Travel-полиси (поврзување Policy ↔️ осигурено лице)
|
|---|
| 132 | CREATE TABLE project_2425.Travel_pol (
|
|---|
| 133 | tr_id BIGSERIAL PRIMARY KEY,
|
|---|
| 134 | pol_id BIGINT NOT NULL,
|
|---|
| 135 | o_embg CHAR(13) NOT NULL,
|
|---|
| 136 | CONSTRAINT fk_travelpol_policy FOREIGN KEY (pol_id) REFERENCES project_2425.Policy(p_id),
|
|---|
| 137 | CONSTRAINT fk_travelpol_person FOREIGN KEY (o_embg) REFERENCES project_2425.Pol_osi(o_embg),
|
|---|
| 138 | CONSTRAINT uq_travelpol UNIQUE (pol_id, o_embg)
|
|---|
| 139 | ); |
|---|