sequelize.js - 如何从Sequelize没有默认ID的另一个表中获取数据?

标签 sequelize.js relation

我有2张 table 。

预订。

  • id = 整数( Sequelize 的默认值)
  • id_booking = 字符串

  • 顾客。
  • id = 整数( Sequelize 的默认值)
  • id_booking = 字符串
  • 代理 = 字符串

  • 我在 Booking 表中创建了 id_booking,因为我想创建唯一的 ID,不像 sequelize 中的 'id' 只是整数。

    我如何从预订表中获得客户,有很多关系?
    注意:外键不是id(来自sequelize)而是id_booking(string,unique)。

    我的 Controller
    enter code here
    db.Booking.findAll({
      include: [{
        model: db.Customer
      }]
    })
    

    我的模特
      module.exports = (sequelize, DataTypes) => {
      const Booking = sequelize.define('Booking', {
        id_booking: DataTypes.STRING,
        agent:DataTypes.STRING,
      }, {});
      Booking.associate = function(models) {
        Booking.hasMany(models.Customer, { foreignKey: 'id_booking'})
      };
      return Booking;
    };
    

    非常感谢。

    最佳答案

    如果不想使用主键,则需要在 sourceKey 关联中指定 one to many,或在反向 targetKey 关系中指定 belongsTo()

    Booking.hasMany(models.Customer, {
      foreignKey: 'id_booking', 
      sourceKey: 'id_booking',
    });
    

    关于sequelize.js - 如何从Sequelize没有默认ID的另一个表中获取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52796989/

    相关文章:

    node.js - Loopback v3关系用户模型及其他模型结构

    gridview - Yii2 在 GridView 中使用 viaTable 关系进行排序和过滤

    sequelize.js - 无法从 sequelize.query 解决 promise

    node.js - Sequelize : Associating two columns in one table. 添加关联后,插入行时出现错误

    javascript - 使用包含关联对 findOrCreate 进行后续处理

    java - 交换 Google Guava Multimap 中键和值的关系

    database - 一对多关系:没有在数据库上创建任何条目

    javascript - 使用 sequelize ORM 连接到 node.js 上的 Amazon RDS Postgres 数据库时出现问题

    webpack - 如何防止 webpack bundle ?

    laravel - 使用作者姓名存储数据 - laravel 5.2