在 Sequelize 中为外键设置自定义列名称 Node.js

Setting custom column names for foreign Keys in Sequelize Node.js

sequelize 新人在此提前致歉。我在我的应用程序中 users postscomments

之间建立了一些 Table 关联

评论模型

import { DataTypes } from 'sequelize';


export const comment = (db) => {
  db.define('comment', {
    commentContent: {
      type: DataTypes.TEXT,
      allowNull: false
    }
  });
}
export const setModelRelationships = (db) => {
    const { user, post, comment } = db.models

    user.hasMany(post);
    user.hasMany(comment);

    post.belongsTo(user);
    post.hasMany(comment);

    comment.belongsTo(post);
    comment.belongsTo(user);
}

检查我的数据库 comments 有 6 列:

编号 |评论内容 |创建于 |更新于 |帖子编号 |用户 ID |

如果我想给 postId 一个自定义名称,例如:commentedOnPostId 我如何使用 Sequelize 做到这一点?

您可以在这样的关联中使用 foreignKey 选项:

post.hasMany(comment, { foreignKey: 'commentedOnPostId' });
comment.belongsTo(post, { foreignKey: 'commentedOnPostId' });

在两个关联中指明相同的 foreignKey 选项值很重要。