如何在sequelizejs中进行连接?

w46czmvw  于 2021-06-24  发布在  Mysql
关注(0)|答案(1)|浏览(302)

这是我对房间table的模型定义

sequelize.define("room", {
 id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
 name: DataTypes.STRING,
 business_id: {
  type: DataTypes.INTEGER,
  references: {
    model:"business,
    key: "id"
  }
 }
});

这是公事

sequelize.define("business", {
 id: { type: DataTypes.INTEGER, primaryKey: true, autoIncrement: true },
 name: DataTypes.STRING,
});

现在想想我有 id 我想用外键处理与此相关的事务。在正常情况下 SQL 我很容易用 inner join 我知道sequelize中使用了一些类似于关联的东西,但是在模型定义中定义引用又有什么用呢?

92dk7w1h

92dk7w1h1#

根据文件:
有时您可能希望引用另一个表,而不添加任何约束或关联。在这种情况下,您可以手动将引用属性添加到模式定义中,并标记它们之间的关系。
协会:
在sequelize中创建关联是通过调用模型(源)上的一个belongsto/hasone/hasmany/belongstomany函数,并提供另一个模型作为函数(目标)的第一个参数来完成的。
hasone-将外键添加到目标,将单一关联mixin添加到源。
belongsto-在源代码中添加外键和单数关联混合。
hasmany-将外键添加到目标,将复数关联mixin添加到源。
belongstomany-创建一个与联接表的n:m关联,并向源中添加多个关联混合。连接表是用sourceid和targetid创建的。
创建关联将向属性添加外键约束。所有关联都在更新时使用cascade,在删除时设置null,除了n:m,它也在删除时使用cascade。
我想这会消除你的疑虑。

相关问题