| 76 | | Водечката колона contract_id овозможува пристап до термините според договорот. Самостоен услов само по lunch_weekday нема соодветен дополнителен индекс во овој сет. |
| 77 | | |
| 78 | | ||= Индекс ||= Табела и колони ||= Намена || |
| 79 | | || `idx_contract_company_id_rest_id` || `contract(company_id, rest_id)` || Пребарување договори по компанија и ресторан и групирање по компанија. || |
| 80 | | || `idx_driver_rest_id` || `driver(rest_id)` || Пронаоѓање доставувачи по ресторан. || |
| 81 | | || `idx_contract_rest_id_company_id` || `contract(rest_id, company_id)` || Пронаоѓање договори почнувајќи од ресторан. || |
| 82 | | || `idx_lunch_time_contract_id` || `lunch_time(contract_id)` || Пронаоѓање термини за конкретен договор, без услов за денот од неделата. || |
| 83 | | |
| 84 | | {{{ |
| 85 | | #!sql |
| 86 | | CREATE INDEX IF NOT EXISTS idx_contract_company_id_rest_id |
| 87 | | ON kbnteam.contract (company_id, rest_id); |
| 88 | | |
| 89 | | CREATE INDEX IF NOT EXISTS idx_driver_rest_id |
| 90 | | ON kbnteam.driver (rest_id); |
| 91 | | |
| 92 | | CREATE INDEX IF NOT EXISTS idx_contract_rest_id_company_id |
| 93 | | ON kbnteam.contract (rest_id, company_id); |
| 94 | | |
| 95 | | CREATE INDEX IF NOT EXISTS idx_lunch_time_contract_id |
| 96 | | ON kbnteam.lunch_time (contract_id); |
| 97 | | }}} |
| 98 | | |
| 99 | | === Проверка на индексите === |
| 100 | | |
| 101 | | {{{ |
| 102 | | #!sql |
| 103 | | SELECT tablename, indexname, indexdef |
| 104 | | FROM pg_indexes |
| 105 | | WHERE schemaname = 'kbnteam' |
| 106 | | AND indexname IN ( |
| 107 | | 'idx_contract_company_id_rest_id', |
| 108 | | 'idx_driver_rest_id', |
| 109 | | 'idx_contract_rest_id_company_id', |
| 110 | | 'idx_lunch_time_contract_id' |
| 111 | | ) |
| 112 | | ORDER BY tablename, indexname; |
| 113 | | }}} |
| | 76 | За овој поглед не се додава посебна група индекси. Постоечката индексна поддршка е доволна за тестираните прашалници. Индексите на заедничките табели можат да се користат и од други погледи. |