php - Laravel 关系结构

标签 php mysql laravel laravel-5

我有一个固定装置表,看起来像这样;

  • 用户编号
  • opponent_id
  • 游戏周
  • league_id

我还有一个结果表,用于存储夹具进入时的结果。

  • 用户编号
  • 游戏周
  • league_id
  • 结果

我正在纠结的是两者之间的关系,以及如何在需要时调用这种关系。

本质上,每个 fixture 包含两个结果;一个user_id_result和一个opponent_id_result(都是指users表中的一个id)

我在 Fixture 模型中做了类似的事情;

public function userResult()
{
    return $this->hasMany('App\Models\Result', 'league_id', 'league_id')
        ->where('user_id', $this->user_id)
        ->where('gameweek', $this->gameweek);
}

而且,虽然这有效,但我认为它不太正确,并且在通过预加载调用时也不起作用。

谢谢你们。

最佳答案

这似乎不是一个好的数据库结构,这可能是您问题的根源所在。两个表都有 3 列,它们是一样的。这不仅效率低下,而且令人困惑。

乍一看,在结果表中删除 3 列更有意义,user_idgameweekleague_id 并替换它们使用 fixture_id 来处理您的关系。 fixtures.id = results.fixture_id

我不知道其中存储了什么,但可以通过将 results 表放在一起并添加 results 列来进一步简化它fixtures 表。让它为空,当游戏结束时,更新该列。

关于php - Laravel 关系结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30532015/

相关文章:

php - 如何使用 simplexmlelement 在 PHP 中解析 XML?

python - 在 flask HTML 模板中运行 python 模块

mysql - 使用删除按钮从数据库中永久删除行(laravel)

php - 在 Laravel 中播种数据库时找不到表错误

php - 安装扩展 : Parse error: syntax error 后 Typo3 崩溃

php -/* */注释 block 的 Netbeans 宏命令

php - 我想将多个复选框选定的选项保存到 MySQL 中

mysql - MySQL 查询的复杂问题

mysql - shell脚本将数据解析为变量然后更新数据库

laravel - Laravel 中的自动重定向