gpt4 book ai didi

sql - 在 sequelize 中定义与自引用表的belongsToMany 关系

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

我有“用户”表,电话号码作为表列。
我想有关联,以便每个用户可以添加许多联系人......基本上联系人将是其他用户。
通常在多对多关系中,我们有两个表和一个连接表。
但是我可以有一个表,即 User 表和一个引用 User 本身的连接表吗?
我的用户表:

const User = sequelize.define(
"users",
phone_number: {
type: DataTypes.STRING,
allowNull: false,
unique: true,
} );
我可以在没有“联系人表”的情况下使用此关联来关注“用户联系人”连接表吗
User.associate = (models) => {
models.User.belongsToMany(models.Contact, {through: 'UserContact' })
};
我的 UserContact 表:
const UserContact = sequelize.define(
"user_contacts",
{
user_id: {
type: DataTypes.INTEGER,
allowNull: false,
},
contact_id: {
type: DataTypes.INTEGER,
allowNull: false,
},
}
);
有没有其他方法比如通过用户表本身的某个字段引用联系人?同样,一个用户应该有一个或多个联系人。

最佳答案

您可以在关联中指明 User 模型并指明双方的字段:

User.associate = (models) => {
models.User.belongsToMany(models.User, {through: 'UserContact' }, foreignKey: 'user_id', otherKey: 'contact_id')
};

关于sql - 在 sequelize 中定义与自引用表的belongsToMany 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64141730/

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