【问题标题】:When to use pivot tables in Laravel何时在 Laravel 中使用数据透视表
【发布时间】:2017-06-14 17:17:10
【问题描述】:

我的GymUser 之间存在一对多关系。 Gym 可以有多个用户,但User 只能有一个健身房。

最好有一个数据透视表来将gym_id 链接到user_id,如下所示?

Gym_User表:

gym_id  |  user_id

或在User 表中如下所示?

User表:

id | name | password | gym_id 

【问题讨论】:

  • 当您有多对多关系时,您应该使用数据透视表。所以在你的情况下,如果一个用户可以有多个 Gyms 并且 Gyms 可以有多个用户;现在是使用支点的好时机。
  • @Liren 那么在这种情况下不要使用一个吗?用户只能有一个健身房,但健身房可以有很多用户
  • @Packy - 如果你告诉一些关于你的要求的更多信息,比如你想收集什么信息,那么我可以给你一个简单的查询来做到这一点。

标签: mysql database laravel


【解决方案1】:

在具有多对多关系时使用数据透视表。但是对于您的情况,您具有一对多关系。并且不需要数据透视表。

多对多关系的一个典型例子是文章和标签。其中 1 篇文章可以有多个标签,1 个标签可以属于多个文章。

但你的关系是简单的一对多关系。

【讨论】:

    【解决方案2】:

    您有一对多的关系,在这种情况下您不需要数据透视表,gym_id 是用户表中的外键,您将在模型上定义关系。

    在健身房模型中,您将定义与用户模型的 hasMany 关系,并在用户模型中定义与健身房模型的关系。 (参考 Laravel 文档)。

    数据透视表的一个很好的例子是访问控制器模型 比如用户、角色和权限..

    【讨论】:

      猜你喜欢
      • 2018-04-10
      • 2021-02-06
      • 1970-01-01
      • 1970-01-01
      • 2019-03-15
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 2021-10-03
      相关资源
      最近更新 更多