有关专辑,艺术家,曲目和标签(音乐资料)之间关系的建议

时间:2018-10-11 17:02:26

标签: laravel eloquent

相册可能有许多像gem这样的歌手。

但是专辑中可能只有一位歌手,例如release

标签上有许多像this这样的相册。

我对人际关系不太困惑,另一方面,一张专辑有很多曲目!我对所有事情都很困惑,因为另一边有一张Label(签约音乐公司)表,而Label有很多专辑!

一些建议将不胜感激。

2 个答案:

答案 0 :(得分:1)

我认为以下示例将帮助您了解专辑,艺术家,曲目和标签之间的关系。请考虑以下模型

class Label extends Model
{
    public function Albums()
    {
        return $this->hasMany(Albums::class, 'album_id', 'id')->select('id') // select will contain whatever data you want from album );
    }
}

class Albums extends Model
{
    public function Artists()
    {
        return $this->hasMany(Artists::class, 'artist_id', 'id')->select('id') // select will contain whatever data you want from table artists);
    }

    public function Tracks()
    {
        return $this->hasMany(Tracks::class, 'track_id', 'id')->select('id') // select will contain whatever data you want from table tracks);
    }
}

即使只有一张专辑有很多艺术家,也将被视为具有hasMany关系。

答案 1 :(得分:0)

我建议使用以下架构:

艺术家

  • id
  • 名称

相册

  • id
  • 名称

标签

  • id
  • 名称

曲目

  • id
  • 名称
  • 长度

albums_has_artists

  • id
  • album_id
  • artist_id

label_has_albums

  • id
  • label_id
  • album_id

album_has_tracks

  • id
  • album_id
  • track_id

如果album_has_artists rows > 1 =>显示“各种艺术家”。

相关问题