Переводы записей: индекс по item_id и уникальность

SQLMiddle5 минпроверка — Спринтиндекс · PostgreSQL14-t009
CREATE TABLE item_translations (
    id            SERIAL PRIMARY KEY,
    item_id       INTEGER NOT NULL REFERENCES items (id) ON DELETE CASCADE,
    language_code VARCHAR(5) NOT NULL, -- 'en', 'es', 'fr'
    title         TEXT,
    description   TEXT
);

Предложи оптимальный индекс для поиска по item_id и уникальный индекс для этой таблицы (у записи — не больше одного перевода на язык). Проверочный запрос: SELECT * FROM item_translations WHERE item_id = 42.

schema.sqlsql
1CREATE TABLE items (id int PRIMARY KEY);2CREATE TABLE item_translations (3    id            serial PRIMARY KEY,4    item_id       integer    NOT NULL REFERENCES items (id) ON DELETE CASCADE,5    language_code varchar(5) NOT NULL,6    title         text,7    description   text8);9INSERT INTO items SELECT generate_series(1, 20000);10INSERT INTO item_translations (item_id, language_code, title)11SELECT i, l, 'title ' || i || ' ' || l12FROM generate_series(1, 20000) AS i, unnest(ARRAY['en', 'es', 'fr']) AS l;
query.sqlsql
1SELECT * FROM item_translations WHERE item_id = 42
⌘ Enter — проверить