knex (postgres) ссылается на столбец (не уникальный) в другой таблице - PullRequest
0 голосов
/ 02 мая 2020

table_a имеет обычный столбец с именем item_id с типом int, и в настоящее время он не индексируется. table_b имеет столбец с именем item_id, в котором я хочу указать ссылку item_id в table_a

Все это обычно нормально, однако table_a.item_id нельзя настроить с уникальным ограничение индекса, поскольку есть строки, содержащие одинаковые значения.

Как table_b.item_id может создать сопоставление внешнего ключа со ссылкой table_a.item_id, когда я не могу установить table_a.item_id с уникальным?

Как настроить неуникальный основанный индекс, чтобы я мог отобразить связь?

1 Ответ

0 голосов
/ 02 мая 2020

Вам не нужно отмечать item_id в table_a как уникальный, чтобы сделать его внешним ключом.

await knex.schema.createTable('table_b', (t) => {
  t.integer('item_id').unsigned().notNullable();

  t.foreign('item_id')
   .references(`table_a.item_id`)
   .onDelete('cascade')
   .onUpdate('cascade');
});

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...