Laravel关系:每个问题限制一个资产,但允许问题有多个资产
tldr;防止同一资产多次附加到同一问题 我正在为我的学校计算机资产创建问题数据库 目前,我在问题和资产之间有一个多对多关系,以及资产问题的透视表Laravel关系:每个问题限制一个资产,但允许问题有多个资产,laravel,relationship,Laravel,Relationship,tldr;防止同一资产多次附加到同一问题 我正在为我的学校计算机资产创建问题数据库 目前,我在问题和资产之间有一个多对多关系,以及资产问题的透视表 Issue id - integer title - string Asset id - integer owner - string Asset_Issue asset_id - integer issue_id - integer specific_asset_issue_problem - string 我能够多次将同一资产附加到同一问题
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),因为它存储与问题资产相关的其他信息。您可以使用复合唯一索引。将此添加到迁移中:
$table->unique(['asset\u id','issue\u id'])代码>
这将防止资产标识
和发行标识
的相同组合,例如,这是不允许的:
asset_id | issue_id
1 | 1
1 | 1
asset_id | issue_id
1 | 1
1 | 2
2 | 1
2 | 2
但这是允许的:
asset_id | issue_id
1 | 1
1 | 1
asset_id | issue_id
1 | 1
1 | 2
2 | 1
2 | 2
您可以使用复合唯一索引。将此添加到迁移中:
$table->unique(['asset\u id','issue\u id'])代码>
这将防止资产标识
和发行标识
的相同组合,例如,这是不允许的:
asset_id | issue_id
1 | 1
1 | 1
asset_id | issue_id
1 | 1
1 | 2
2 | 1
2 | 2
但这是允许的:
asset_id | issue_id
1 | 1
1 | 1
asset_id | issue_id
1 | 1
1 | 2
2 | 1
2 | 2
嗨,我不知道我是否明白你想做什么。是否要防止同一资产多次附加到同一问题?或者一次发行应该只有一个资产?你好,德莱娜,我想防止同一资产被多次附加到同一发行。感谢您在数据库级别上的澄清,您可以在Asset\u id
和Issue\u id
上的Asset\u Issue
表中添加一个唯一的键,如果有,您可以将其添加到迁移中。嘿,martincarlin87,我考虑过了。添加唯一密钥也会限制问题拥有一个或多个资产。除了放置唯一的密钥,您还知道其他方法吗?嗨,我不确定我是否了解您想要做什么。是否要防止同一资产多次附加到同一问题?或者一次发行应该只有一个资产?你好,德莱娜,我想防止同一资产被多次附加到同一发行。感谢您在数据库级别上的澄清,您可以在Asset\u id
和Issue\u id
上的Asset\u Issue
表中添加一个唯一的键,如果有,您可以将其添加到迁移中。嘿,martincarlin87,我考虑过了。添加唯一密钥也会限制问题拥有一个或多个资产。除了放置唯一的密钥,您还知道其他方法吗?