在 Sequelize 中为外键设置自定义列名称 Node.js
Setting custom column names for foreign Keys in Sequelize Node.js
sequelize
新人在此提前致歉。我在我的应用程序中 users
posts
和 comments
之间建立了一些 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
选项值很重要。
sequelize
新人在此提前致歉。我在我的应用程序中 users
posts
和 comments
评论模型
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
选项值很重要。