代码之家  ›  专栏  ›  技术社区  ›  Praveena

如何在SequelizeJS中进行连接?

  •  0
  • Praveena  · 技术社区  · 7 年前

    这是我对房间桌子的模型定义

    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中使用了类似于关联的东西,但是在模型定义中定义引用有什么用呢?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Vivek Doshi    7 年前

    根据 DOC :

    有时您可能希望引用另一个表,而不添加任何 约束或关联。在这种情况下,您可以手动添加 将属性引用到模式定义,并标记关系 在他们之间。

    Association :

    在sequelize中创建关联是通过调用 模型上的belongsTo/hasOne/hasMany/belongstomy函数 并提供另一个模型作为 功能(目标)。

    1. hasOne-向目标和单数关联添加外键 混入源。
    2. belongsTo-将外键和单数关联混合添加到源。
    3. hasMany-向目标添加外键,向源添加复数关联混合。
    4. belongsToMany-创建一个与联接表的N:M关联,并向源中添加多个关联混合。连接表为 使用sourceId和targetId创建。

    创建关联将向 属性。所有关联在更新时使用级联,并在 delete,n:m除外,n:m在删除时也使用级联。

    我想这会消除你的疑虑。