Laravel:将belongsTo逻辑转换为belongsToMany的最佳方法是什么?

时间:2016-02-01 13:59:57

标签: php sql laravel eloquent

我的应用是关于艺术家绘画墙。

此时艺术家有许多墙壁,墙壁属于艺术家。

但现在我想让Wall成为所有艺术家。 (有时墙壁是由2位或更多艺术家绘制的......)

我无法想象自己解决问题的最佳方法。怎么样:

1 - 数据透视表:artist_wall Wall属于多个艺术家 和艺术家有很多墙

  

•有可能吗?或者我必须在两方都拥有所有关系吗?

     

•我已经拥有150多个带有artist_id字段的墙记录。感觉就像在枢轴表中转移关系一样冒险的任务

2 - 我墙上的一个artist_ids数组

  

•然后我想我将失去雄辩关系的好处

     

•看起来很脏

有分享经验吗?它够清楚了吗? 我正在使用Laravel 5。

谢谢!

1 个答案:

答案 0 :(得分:1)

你有很多关系。你应该有3个表:

  • 艺术家(身份证,说明,......)
  • Artists_Walls(ArtistID,WallID,...)
  • 墙(ID,描述,......)

然后你可以使用连接来获得像这样的艺术家的所有墙:

select * from Artists a
inner join Artists_Walls aw on a.ID = aw.ArtistID
where a.ID = '1'

如果您想要相反,那么您可以通过Walls

加入Artists_Walls来做相反的事情。