Model view controller 为什么我们必须在模型和迁移时设置数据库的关系?阿多尼斯JS

Model view controller 为什么我们必须在模型和迁移时设置数据库的关系?阿多尼斯JS,model-view-controller,orm,adonis.js,Model View Controller,Orm,Adonis.js,为什么需要在Adonis.js中设置数据库中存在的迁移关系(参考)和模型中存在的关系(使用hasMany)?总之,迁移和模型是独立的,不能一起工作。要使用这些模型,无需使用迁移(可以使用现有数据库) 迁移 迁移用于创建数据库 您必须在迁移文件中定义数据库的结构。所以人际关系很重要 发件人: 迁移是有文档记录的数据库突变,在应用程序的整个开发生命周期中创建,您可以在任何时间点回滚或重新运行 迁移使团队工作变得更容易,使一个开发人员对数据库架构的更改能够轻松跟踪,然后由组织中的其他开发人员应用 当然

为什么需要在Adonis.js中设置数据库中存在的迁移关系(参考)和模型中存在的关系(使用hasMany)?

总之,迁移和模型是独立的,不能一起工作。要使用这些模型,无需使用迁移(可以使用现有数据库)

迁移 迁移用于创建数据库

您必须在迁移文件中定义数据库的结构。所以人际关系很重要

发件人:

迁移是有文档记录的数据库突变,在应用程序的整个开发生命周期中创建,您可以在任何时间点回滚或重新运行

迁移使团队工作变得更容易,使一个开发人员对数据库架构的更改能够轻松跟踪,然后由组织中的其他开发人员应用

当然,没有必要使用迁移。您可以创建自己的数据库,并仅使用允许检索数据的

关于模型(Lucid)的有趣之处在于(使用Knex)很容易进行SQL查询

由于模型和迁移没有链接,因此有必要声明要使用的表之间的不同关系

Lucid是的AdonisJS实现

发件人:

关系是数据驱动应用程序的主干,将一种模型类型链接到另一种模型类型

例如,一个用户可以有许多帖子关系,每个帖子可以有许多评论关系

Lucid的表达式API使关联和获取模型关系的过程简单直观,无需触摸SQL语句,甚至无需编辑SQL模式

例子: 关系:

用户模型:

const Model=use('Model'))
类用户扩展模型{
职位(){
返回此。hasMany('App/Models/Post')//有许多帖子
}
}
module.exports=用户
控制器代码:

const User=use('App/Models/User'))
const users=等待用户
.query()
.with('posts')//使用模型关系
.fetch()
输出:

[
  {
    id: 1,
    username: 'virk',
    posts: [{
      id: 1,
      user_id: 1,
      post_title: '...',
      post_body: '...',
    }]
  }
]
^

总之,迁移和模型是独立的,不能一起工作。要使用这些模型,无需使用迁移(可以使用现有数据库)

迁移 迁移用于创建数据库

您必须在迁移文件中定义数据库的结构。所以人际关系很重要

发件人:

迁移是有文档记录的数据库突变,在应用程序的整个开发生命周期中创建,您可以在任何时间点回滚或重新运行

迁移使团队工作变得更容易,使一个开发人员对数据库架构的更改能够轻松跟踪,然后由组织中的其他开发人员应用

当然,没有必要使用迁移。您可以创建自己的数据库,并仅使用允许检索数据的

关于模型(Lucid)的有趣之处在于(使用Knex)很容易进行SQL查询

由于模型和迁移没有链接,因此有必要声明要使用的表之间的不同关系

Lucid是的AdonisJS实现

发件人:

关系是数据驱动应用程序的主干,将一种模型类型链接到另一种模型类型

例如,一个用户可以有许多帖子关系,每个帖子可以有许多评论关系

Lucid的表达式API使关联和获取模型关系的过程简单直观,无需触摸SQL语句,甚至无需编辑SQL模式

例子: 关系:

用户模型:

const Model=use('Model'))
类用户扩展模型{
职位(){
返回此。hasMany('App/Models/Post')//有许多帖子
}
}
module.exports=用户
控制器代码:

const User=use('App/Models/User'))
const users=等待用户
.query()
.with('posts')//使用模型关系
.fetch()
输出:

[
  {
    id: 1,
    username: 'virk',
    posts: [{
      id: 1,
      user_id: 1,
      post_title: '...',
      post_body: '...',
    }]
  }
]
^