Отношения Laravel: ограничьте один актив на проблему, но разрешите проблеме иметь много активов - PullRequest
1 голос
/ 19 июня 2019

tldr;предотвратить повторное присоединение одного и того же актива к одной и той же проблеме более одного раза.

Я создаю проблемную базу данных для школьных компьютерных активов.

В настоящее время у меня есть отношение многие ко многим между Issue и Asset, а также сводная таблица Asset_Issue.

Issue
id - integer
title - string

Asset
id - integer
owner - string

Asset_Issue
asset_id - integer
issue_id - integer
specific_asset_issue_problem - string

Мне удалось присоединить один и тот же актив к одной и той же проблеме несколько раз.

Я хотел бы не допустить, чтобы один и тот же актив был присоединен к одной и той же проблеме более одного раза, но я все еще хочу иметь сводную единицу (Asset_Issue), поскольку она хранит другую информацию, относящуюся к активу для этой проблемы.

1 Ответ

0 голосов
/ 19 июня 2019

Вы можете использовать составной уникальный индекс.Добавьте это к миграции:

$table->unique(['asset_id', 'issue_id']);

Это предотвратит идентичные комбинации asset_id и issue_id, например, это не будет разрешено:

asset_id | issue_id
1        | 1
1        | 1

но это будет разрешено:

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