如何使用 Sequelize 将附加列添加到 belongsToMany 关联

How can I add an additional column to the belongsToMany Association using Sequelize

我正在使用 Node、Express、Postgres 和 Sequelize

您好,我正在使用 Sequelize,我成功地通过 table 为我的 Postgres 数据库创建了 belongsToMany。但是我想在其中添加一个额外的列,但不知道该怎么做,我在网上搜索过也没有找到答案。

我得到了这两个 tables:

  1. 客户
  2. 商店产品

下面是我使用 belongsToMany 关联(多对多)创建第三个 table 的 Sequelize 方法,我将调用 table order_list.

  customer.belongsToMany(storeProduct, { 
    through: 'order_list',
    unique: false,
    foreignKey: 'customers_cid',
    // How can I add this additional column quantity to it?
    quantity: { /// How do I add it?
      type: DataTypes.INTEGER
    }
  });

  storeProduct.belongsToMany(customer, { 
    through: 'order_list',
    unique: false,
    foreignKey: 'store_products_spid',
    // How can I add this additional column quantity to it?
    quantity: { /// How do I add it?
      type: DataTypes.INTEGER
    }
  });

  sequelize.sync({ alter: true });

那么我如何才能成功地将类型为 INTEGER 的 I 数量列添加到这个新的 order_list table?

提前致谢!

您需要使用附加列显式定义 OrderList 模型,然后在选项 through 中的 belongsToMany 中使用它。
请参阅官方文档中的 Advanced Many-To_many 指南。

示例:

const User_Profile = sequelize.define('User_Profile', {
  selfGranted: DataTypes.BOOLEAN
}, { timestamps: false });
User.belongsToMany(Profile, { through: User_Profile });
Profile.belongsToMany(User, { through: User_Profile });