Juan Pablo B Asked: 2020-11-04 18:42:03 +0800 CST 2020-11-04 18:42:03 +0800 CST 2020-11-04 18:42:03 +0800 CST laravel 中带有 3 个模型的数据透视表 772 我有 3 个表:Draw、player 和 round,而这三个表又是一个公共表,具有以下属性:id、id_draw、id_player、id_round。 我不知道的是如何建立这种类型的关系以及如何插入数据。由于在与两个表的多对多关系中,它将是:draw->player()->attach(...); 3表这种关系,不知道怎么插入数据,建立belongsToMany关系。 关系: 三元关系由 draw - PlayerATP - Round 作为结果表 Matches 给出 laravel-5 1 Answers Voted Best Answer Gerard Reches 2020-11-05T04:56:43+08:002020-11-05T04:56:43+08:00 考虑到Eloquent 不支持复合主键,我建议您以不同的方式处理您的数据库结构,以免让您头疼。 假设(我不知道会不会是这样,但可以调整)一个回合有几个卷(平局)并且一个卷属于一个玩家,你可以设置一些关系: 玩家 1 - N 平局(玩家有很多平局,平局属于玩家) round 1 - N draw (round hasMany draws, draw belongsTo round) 提供有关您想要建立的关系的更多信息,以便我向您展示一个更复杂的示例。 更新 这是网球...... - 平局有很多球员和很多轮。- 一名球员将参加多次平局和多次回合。- 一轮将有很多平局,并且会有很多玩家。 绘制 M - N 个玩家(绘制玩家belongsToMany,绘制玩家belongsToMany) draw M - round N (draw belongsToMany round, draw belongsToMany round ) 玩家 M - 第 N 轮(玩家belongsToMany回合,回合玩家belongsToMany) 它们之间有三个数据透视表关系,但需要更多信息,因为您使用的是三元组,但没有提供足够的详细信息来了解您要做什么。
考虑到Eloquent 不支持复合主键,我建议您以不同的方式处理您的数据库结构,以免让您头疼。
假设(我不知道会不会是这样,但可以调整)一个回合有几个卷(平局)并且一个卷属于一个玩家,你可以设置一些关系:
玩家 1 - N 平局(玩家有很多平局,平局属于玩家)
round 1 - N draw (round hasMany draws, draw belongsTo round)
提供有关您想要建立的关系的更多信息,以便我向您展示一个更复杂的示例。
更新
绘制 M - N 个玩家(绘制玩家belongsToMany,绘制玩家belongsToMany)
draw M - round N (draw belongsToMany round, draw belongsToMany round )
玩家 M - 第 N 轮(玩家belongsToMany回合,回合玩家belongsToMany)
它们之间有三个数据透视表关系,但需要更多信息,因为您使用的是三元组,但没有提供足够的详细信息来了解您要做什么。