mysql - 如何在MySQL中实现先决条件表

标签 mysql laravel foreign-keys

我正在使用 Laravel,数据库中有一个名为“course”的表。它有一些字段,如“标题”、“内容”等...... 而且我想要一门类(class)有一些先决条件(其他类(class))。我怎样才能实现这个?我可以通过自引用外键来做到这一点,但这样一门类(class)就只有一个先决条件。

最佳答案

由于一门类(class)可以有许多先决条件,并且一个先决条件属于许多类(class),因此它是一种 n:m 关系。

使用字段 idcourse_idprecession_id 创建数据透视表 course_precession

向类(class)模型添加一个具有 BelongsToMany 关系的 preventions() 方法,如下所示:

prerequisites() : BelongsToMany
{
    return $this->belongsToMany(Course::class, 'course_prerequisite', 'course_id', 'prerequisite_id')
}

如果您需要反向关系,请添加带有 BelongsToManycourses 方法:

courses() : BelongsToMany
{
    return $this->belongsToMany(Course::class, 'course_prerequisite', 'prerequisite_id', 'course_id')
}

关于mysql - 如何在MySQL中实现先决条件表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51122914/

相关文章:

android - 如何从 SQLite 中检索最后一个 _ID

php - 第二次调用存储过程出现错误(2014)

laravel - 对于大型Web应用程序,最佳Vue-Router最佳实践是什么?

Laravel:捕获路径不以api开头的所有路由

mysql - MySQL 5.5.9 的奇怪外键问题

mysql - 如果列只有两个特定值,sql select all

php - 在 MySQL/PHP 查询中有效显示 strtotime()

mysql - 动态 Shell 变量替换

Windows控制台中的mysql命令卡住

javascript - 从 Laravel Controller 中的 AJAX post 请求将数据添加到 MySQL