gpt4 book ai didi

node.js - Sequelize 模型文件中的外部字段引用

转载 作者:行者123 更新时间:2023-12-03 22:34:55 25 4
gpt4 key购买 nike

我正在使用 nodejs、express 和 sequelize 编写潜在客户捕获应用程序。我有一个 Lead 对象,但我想在架构中引入一个新表 LeadSource,Lead 有一个到 LeadSource 的 FK

/path/to/model/Lead.js

'use strict';

module.exports = (sequelize, DataTypes) => {
var Lead = sequelize.define('Lead', {
id: {
type: DataTypes.UUID,
defaultValue: DataTypes.UUIDV4,

allowNull: false,
primaryKey: true
},
first_name: {
type: DataTypes.STRING,
},
last_name: {
type: DataTypes.STRING,
},
email: {
type: DataTypes.STRING,
allowNull: false,
},
});

return Lead;
};

这是 LeadSource 的架构
LeadSource = sequelize.define('LeadSource', {
id: { type: Sequelize.INTEGER },
name: { type: Sequelize.STRING }
});

我的问题是:
  • 如何在 Lead.js 文件中将 LeadSource 引用为 FK?
  • 我喜欢将每个模型保存在一个单独的文件中 - 我可以进行这种分离并且仍然有 LeadSource 中 FK 的 LeadSource 引用吗?
  • 最佳答案

    是的,您可以定义模型之间的关系,同时将每个模型保存在单独的文件中。

    以下是如何在 Lead.js 文件中的 Lead 和 LeadSource 之间定义 associations

    module.exports = (sequelize, DataTypes) => {
    var Lead = sequelize.define('Lead', {
    // ...
    })

    Lead.associate = function (models) {
    // associations can be defined here

    //One-To-One relationship with foreign key added to Lead
    Lead.belongsTo(models.LeadSource, {
    foreignKey: { name: 'leadSourceId' }
    })

    //One-To-Many relationship with foreign key added to Lead
    models.LeadSource.hasMany(Lead, {
    foreignKey: { name: 'leadSourceId' }
    })
    }

    return Lead;
    }

    关于node.js - Sequelize 模型文件中的外部字段引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61977028/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com