数据库
首页 > 数据库> > PHP-MySql-基于多对多数据透视表值的唯一键

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