【问题标题】:create ManyToMany relation or an array of movieId in laravel 5.2?在laravel 5.2中创建ManyToMany关系或movieId数组?
【发布时间】:2016-08-08 03:26:29
【问题描述】:

我将创建一个与IMDB.com 站点逻辑完全相同的网站。

我有lists 表,可以有很多来自movies 表的电影。现在我想知道哪种方法是最好的选择?

  1. listsmovies 表之间创建ManyToMany 关系,并创建一个数据透视表来存储两个表中的ids

  2. lists 表中创建一个名为movieId 的字段,并将所有电影ID 像数组一样存储在该字段中,并用',' 分隔。

请告诉我你会选择哪种方式以及为什么?

【问题讨论】:

  • 列表表的作用是什么?
  • 列表表包含监视列表和自定义列表,用户可以创建它们并将电影添加到每个列表中。和imdb一模一样

标签: mysql laravel


【解决方案1】:

好的。去ManyToMany关系。 Eloquent 已经拥有处理这种关系的机制,从而减少了您编写代码的工作量。通过数据透视表定义正确的关系将使您更容易处理 CRUD 操作。

使用第二种方法,您将无法使用Eloquent 处理此问题。同样,这不是在表之间创建关系的标准方法。此外,您必须手动准备以逗号分隔的电影名称。

【讨论】:

  • 感谢您的回答。我有点担心这种方法的可扩展性。假设我们有成千上万的用户,每个用户都有多个列表,每个列表包含数百个电影 ID。以后不会有问题吧?
  • 这取决于你如何处理它。 Eloquent 也已经意识到这一点。在第二种方法中,您肯定会为该数量的记录手动执行某些操作。想象一下,如果必须有一个循环,您要迭代多少次?
猜你喜欢
  • 2018-08-22
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 2018-12-03
  • 1970-01-01
  • 2022-01-12
相关资源
最近更新 更多