PHP-MySql-基于多对多数据透视表值的唯一键
作者:互联网
我必须管理艺术家和专辑表.
| artists | | albums | | album_artist |
+--------------+ +--------------+ +--------------+
| id | | id | | id |
| artist | | album | | album_id |
| created_at | | created_at | | artist_id |
| updated_at | | updated_at | +--------------+
+--------------+ +--------------+
请记住,这是一个多对多的关系,我确实需要找到一种使专辑艺术家对唯一的方法,因为专辑可能具有相同的名称却属于不同的艺术家(例如“ Greatest Hits” ”的2Pac专辑和Notorious BIG的“ Greatest Hits”).
是否有解决此问题的已知方法/模式?
谢谢.
解决方法:
我之前通过在album_id,artist_id上创建唯一约束来做到这一点.
这样便可以为不同的艺术家制作专辑.由于艺术家编号会有所不同.在您的迁移中.
$table->unique(['album_id', 'artist_id']);
在传统的数据库设计中,这称为复合键,它是两列或更多列,这使表具有唯一性,在大多数数据透视表中,这将是两个外键.
标签:laravel,relational-database,mysql,php 来源: https://codeday.me/bug/20191118/2030517.html