Для SQLite базы данных есть такие таблицы:
CREATE TABLE IF NOT EXISTS charges (id_charge INTEGER PRIMARY KEY, conn_id INTEGER NOT NULL, created_at TEXT, kwh_cost REAL NOT NULL, ordered_kwh REAL NOT NULL);
CREATE TABLE IF NOT EXISTS charge_stops (id_stop INTEGER PRIMARY KEY, created_at TEXT NOT NULL, remain_kwh REAL NOT NULL, spent_kwh REAL NOT NULL, id_charge INTEGER NOT NULL, FOREIGN KEY (id_charge) REFERENCES charges (id_charge) ON UPDATE CASCADE ON DELETE CASCADE);
CREATE TABLE IF NOT EXISTS payments (id_pay INTEGER PRIMARY KEY, pay_amount INTEGER NOT NULL, pay_datetime TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS payments_pos_data (id_pay_pos INTEGER PRIMARY KEY, pay_rrn TEXT NOT NULL, pay_invoice INTEGER NOT NULL, created_at TEXT NOT NULL, id_pay INTEGER NOT NULL, FOREIGN KEY (id_pay) REFERENCES payments (id_pay) ON UPDATE CASCADE ON DELETE CASCADE);
CREATE TABLE IF NOT EXISTS pay_charges (id_charge INTEGER NOT NULL, id_pay INTEGER NOT NULL UNIQUE, FOREIGN KEY (id_charge) REFERENCES charges(id_charge), FOREIGN KEY (id_pay) REFERENCES payments(id_pay));
CREATE TABLE IF NOT EXISTS pay_status_enum (id_pay_status_enum INTEGER PRIMARY KEY, pay_status TEXT NOT NULL UNIQUE);
CREATE TABLE IF NOT EXISTS pay_statuses (id_pay INTEGER, pay_status INTEGER, created_at TEXT NOT NULL, FOREIGN KEY (id_pay) REFERENCES payments (id_pay), FOREIGN KEY (pay_status) REFERENCES pay_status_enum (id_pay_status_enum));
CREATE TABLE IF NOT EXISTS refunds (id_refund INTEGER PRIMARY KEY AUTOINCREMENT, refund_amount INTEGER NOT NULL, refund_datetime TEXT NOT NULL, pay_id INTEGER NOT NULL, FOREIGN KEY (pay_id) REFERENCES payments (id_pay) ON UPDATE CASCADE ON DELETE CASCADE);
CREATE TABLE IF NOT EXISTS refunds_pos_data (id_refund_pos INTEGER PRIMARY KEY AUTOINCREMENT, refund_rrn TEXT NOT NULL, refund_invoice INTEGER NOT NULL, created_at TEXT NOT NULL, id_refund INTEGER NOT NULL, FOREIGN KEY (id_refund) REFERENCES refunds (id_refund) ON UPDATE CASCADE ON DELETE CASCADE);
CREATE TABLE IF NOT EXISTS refund_status_enum(id_status INTEGER PRIMARY KEY, status TEXT NOT NULL UNIQUE);
CREATE TABLE IF NOT EXISTS refund_statuses(id_refund INTEGER NOT NULL, refund_status INTEGER NOT NULL, dt TEXT NOT NULL, FOREIGN KEY (id_refund) REFERENCES refunds (id_refund) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (refund_status) REFERENCES refund_status_enum (id_status) ON UPDATE CASCADE ON DELETE CASCADE);
CREATE TABLE IF NOT EXISTS pos_errors (id_error INTEGER PRIMARY KEY, error_code INTEGER NOT NULL, error_str TEXT, error_dt TEXT NOT NULL);
CREATE TABLE IF NOT EXISTS pay_errors (error_pay_id INTEGER NOT NULL, error_id INTEGER NOT NULL, UNIQUE(error_pay_id, error_id), FOREIGN KEY (error_pay_id) REFERENCES payments (id_pay) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (error_id) REFERENCES pos_errors (id_error) ON UPDATE CASCADE ON DELETE CASCADE);
CREATE TABLE IF NOT EXISTS refund_errors (error_refund_id INTEGER NOT NULL, error_id INTEGER NOT NULL, UNIQUE (error_refund_id, error_id), FOREIGN KEY (error_refund_id) REFERENCES refunds (id_refund) ON UPDATE CASCADE ON DELETE CASCADE, FOREIGN KEY (error_id) REFERENCES pos_errors (id_error) ON UPDATE CASCADE ON DELETE CASCADE);

Какие индексы нужно создать для эффективной работы базы данных?