У меня есть две таблицы
Первая таблица:
Table "public.things"
Column | Type | Collation | Nullable | Default
----------------------+-----------------------------+-------------
id | bigint | | not null |
name | character varying(255) | | not null |
slug | character varying(255) | | |
lang_id | integer | | |
Indexes:
"things_pkey" PRIMARY KEY, btree (id)
"things_slug_unique" UNIQUE CONSTRAINT, btree (slug)
Вторая таблица для магазина многие ко многим для регионов и вещей:
Table "public.values"
Column | Type | Collation | Nullable | Default | Storage
------------+--------+-----------+----------+---------+-----
thing_id | bigint | | not null | | plain |
region_id | bigint | | not null | | plain |
values | jsonb | | not null | | extended|
Indexes:
"values_pkey" PRIMARY KEY, btree (thing_id, region_id)
А у меня третья таблица, которая должна хранить варианты пользователей из таблицы значения
Полиморфная таблица user_variants выглядит так:
Table "public.user_variants"
Column | Type | Collation | Nullable | Default |
-------------+--------+-----------+----------+---------+
user_id | int | | not null | |
entity_id | bigint | | not null | |
entity_type | bigint | | not null | |
content | jsonb | | not null | |
Например, я могу хранить в user_variants таблицу что-то вроде этого:
user_id | entity_id | entity_type | content |
---------+-------------+----------------+----------------------+
41 | 23 | combination_1 | '{ values: [ ...] }' |
42 | 24 | combination_2 | '{ values: [ ...] }' |
У меня проблема, у моей таблицы значения нет уникального id для хранения в entity_id поле, но у значений таблицы есть ключ primiry «values_pkey» состоит из thing_id, region_id . Как можно без добавления «id» в мою таблицу values , использовать первичный ключ «values_pkey» ?