| 1 | == Индекси |
| 2 | |
| 3 | === За возила |
| 4 | |
| 5 | {{{ |
| 6 | -- Index for status filtering (most common query) |
| 7 | CREATE INDEX IF NOT EXISTS idx_vehicle_status ON vehicle(status); |
| 8 | |
| 9 | -- Index for dealership vehicles lookup |
| 10 | CREATE INDEX IF NOT EXISTS idx_vehicle_tax_nr ON vehicle(tax_nr); |
| 11 | |
| 12 | -- Composite index for dealership + status (for getMyVehicles) |
| 13 | CREATE INDEX IF NOT EXISTS idx_vehicle_tax_nr_status ON vehicle(tax_nr, status); |
| 14 | |
| 15 | -- Index for vehicle make/model searches (for future search functionality) |
| 16 | CREATE INDEX IF NOT EXISTS idx_vehicle_make ON vehicle(make); |
| 17 | CREATE INDEX IF NOT EXISTS idx_vehicle_model ON vehicle(model); |
| 18 | |
| 19 | -- Composite index for make + model + year (common search pattern) |
| 20 | CREATE INDEX IF NOT EXISTS idx_vehicle_make_model_year ON vehicle(make, model, p_year); |
| 21 | |
| 22 | -- Index for price range searches |
| 23 | CREATE INDEX IF NOT EXISTS idx_vehicle_price ON vehicle(price); |
| 24 | |
| 25 | -- Index for year-based filtering |
| 26 | CREATE INDEX IF NOT EXISTS idx_vehicle_year ON vehicle(p_year); |
| 27 | }}} |
| 28 | |
| 29 | === За договори |
| 30 | {{{ |
| 31 | -- Index for VIN lookups (most common join) |
| 32 | CREATE INDEX IF NOT EXISTS idx_agreement_vin ON agreement(vin); |
| 33 | |
| 34 | -- Index for client agreements lookup |
| 35 | CREATE INDEX IF NOT EXISTS idx_agreement_embg ON agreement(embg); |
| 36 | |
| 37 | -- Index for dealership agreements lookup |
| 38 | CREATE INDEX IF NOT EXISTS idx_agreement_tax_nr ON agreement(tax_nr); |
| 39 | |
| 40 | -- Index for date-based ordering ( |
| 41 | CREATE INDEX IF NOT EXISTS idx_agreement_datum ON agreement(datum); |
| 42 | |
| 43 | -- Composite index for dealership + date (for getDealershipAgreements) |
| 44 | CREATE INDEX IF NOT EXISTS idx_agreement_tax_nr_datum ON agreement(tax_nr, datum DESC); |
| 45 | |
| 46 | -- Composite index for client + date (for getClientAgreements) |
| 47 | CREATE INDEX IF NOT EXISTS idx_agreement_embg_datum ON agreement(embg, datum DESC); |
| 48 | |
| 49 | -- Index for status filtering |
| 50 | CREATE INDEX IF NOT EXISTS idx_agreement_status ON agreement(status); |
| 51 | |
| 52 | -- Composite index for VIN + status (for duplicate prevention) |
| 53 | CREATE INDEX IF NOT EXISTS idx_agreement_vin_status ON agreement(vin, status); |
| 54 | }}} |
| 55 | |
| 56 | === За уплати |
| 57 | {{{ |
| 58 | -- Index for agreement lookups (most common join) |
| 59 | CREATE INDEX IF NOT EXISTS idx_payment_a_id ON payment(a_id); |
| 60 | |
| 61 | -- Index for client payments lookup |
| 62 | CREATE INDEX IF NOT EXISTS idx_payment_embg ON payment(embg); |
| 63 | |
| 64 | -- Index for date-based ordering |
| 65 | CREATE INDEX IF NOT EXISTS idx_payment_created_at ON payment(created_at); |
| 66 | |
| 67 | -- Composite index for agreement + amount (for validation) |
| 68 | CREATE INDEX IF NOT EXISTS idx_payment_a_id_amount ON payment(a_id, amount); |
| 69 | }}} |
| 70 | |
| 71 | === За клиенти |
| 72 | {{{ |
| 73 | -- Index for email lookups (login) |
| 74 | CREATE INDEX IF NOT EXISTS idx_client_email ON client(email); |
| 75 | |
| 76 | -- Composite index for email + password (login optimization) |
| 77 | CREATE INDEX IF NOT EXISTS idx_client_email_pass ON client(email, pass); |
| 78 | |
| 79 | -- Index for name searches |
| 80 | CREATE INDEX IF NOT EXISTS idx_client_name ON client(c_name); |
| 81 | }}} |
| 82 | |
| 83 | === За претставништва |
| 84 | {{{ |
| 85 | -- Index for email lookups (login) |
| 86 | CREATE INDEX IF NOT EXISTS idx_dealership_email ON dealership(email); |
| 87 | |
| 88 | -- Composite index for email + password (login optimization) |
| 89 | CREATE INDEX IF NOT EXISTS idx_dealership_email_pass ON dealership(email, pass); |
| 90 | |
| 91 | -- Index for name searches |
| 92 | CREATE INDEX IF NOT EXISTS idx_dealership_name ON dealership(d_name); |
| 93 | }}} |