有時,歌曲上會出現不止一位藝術家。例如,Jay-z的新歌曲「A Star is Born」以藝術家Cole爲特色,因此在目錄中被列爲「Jay-z(特色Cole) - 星星誕生」。我的問題是如何在我的數據庫中建模。如何爲「特色」概念建模(即,當某首歌曲「有特色」時)
現在這很簡單:每首歌曲belongs_to :artist
和每個藝術家has_many :songs
。我想改變這一點,以便歌曲有許多藝術家,一位藝術家被指定爲「主要」 - 即,如果A,B和C都與給定歌曲相關聯,並且A是主要歌手,則該歌曲的藝術家將成爲顯示爲「A(具有B和C)」。
這裏就是我想:
宋:
has_many :artists, :through => :performances
藝術家:
has_many :songs, :through => :performances
其中performance
模式將有一個字段爲primary?
,指定是否給定的性能是這首歌的「主要」表演,這意味着與該表演相關的藝術家是該歌曲的主要藝術家。
這種方法有意義嗎?