2016-04-25 11 views
3

アーティストとアルバムのテーブルを管理する必要があります。これは、多対多の関係であることを念頭に置いてMySql - 多対多ピボットテーブルの値に基づく一意のキー

| artists  | | albums  | | album_artist | 
+--------------+ +--------------+ +--------------+ 
| id   | | id   | | id   | 
| artist  | | album  | | album_id  | 
| created_at | | created_at | | artist_id | 
| updated_at | | updated_at | +--------------+ 
+--------------+ +--------------+ 

キーピングアルバムはまだに属する同じ名前を持つ可能性があるので、私は、アルバム・アーティスト(S)ペアのユニークなを取得する方法を見つける必要があります2Pacの "Greatest Hits"とNotorious BIGの "Greatest Hits"の2人のアーティストが参加しています。 この問題に対処する既知の方法/パターンはありますか?

ありがとうございます。

+0

ペアの一意のID ... 'album_artist'テーブルの' id'列 –

答えて

3

album_id、artist_idにユニークな制約を作成して、これまでに行っています。

これにより、さまざまなアーティストのアルバムを作成することができます。アーティストのIDは区別されます。あなたのマイグレーションで。従来のデータベース設計で

$table->unique(['album_id', 'artist_id']); 

、これはこれは2 foreign keysなります pivot tableほとんどで、テーブルにはユニークな2つの以上の列であり、これは、 composite keyと呼ばれています。

関連する問題