gpt4 book ai didi

javascript - 一个模型(用户)怎么可能只有一个其他模型(例如工作场所),但工作场所在 Sequelize.js 中属于许多用户?

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

我想要一个模型(即用户)属于 一个 其他模型(应该是工作场所),但工作场所(例如 Apple)应该有许多属于他们的用户。我如何使用 Sequelize 做到这一点?

我已经尝试使用一个 User.hasOne(models.Workplace) ,但这仅允许每个 Workplace 有一个 User,因为它在 Workplace 表中创建了 UserId 列。

这是我的用户模型的代码:

module.exports = (sequelize, DataTypes) => {
const User = sequelize.define('User', {
id: {
autoIncrement: true,
primaryKey: true,
type: DataTypes.INTEGER
},
username: {
type: DataTypes.STRING
},
firstname: {
type: DataTypes.STRING
}
}, {})

User.associate = (models) => {
models.User.hasOne(models.User)
}

return User
}

这是我的工作场所模型的代码:
module.exports = (sequelize, DataTypes) => {
const Workplace = sequelize.define('Workplace', {
id: {
type: DataTypes.INTEGER,
autoIncrement: true,
primaryKey: true
},
name: {
type: DataTypes.STRING
}
}, {})

return Workplace
}

谢谢!

最佳答案

让我们在较低的层次上考虑这个问题。

我假设您使用某种关系数据库,因为您在它之上使用 Sequelize。

您的要求是用户只有一个其他模型(例如工作场所),但工作场所属于许多用户。

可以翻译成 user 模型在他们的表中有外键 workplaceId 并且 workspace 在他们的表中没有外键。

例如, { userId: 1, workspaceId: 1 }, { userId: 2, workspaceId: 1 }, { workspaceId: 1 } 就是您所期望的。

我们怎样才能做到这一点?

只需在 belongsTo 模型中设置 user 关系即可。
(它会在您的表中生成 workspaceId)

首先考虑数据库层总是好的,因为毕竟 Sequelize 只是一个抽象层。

关于javascript - 一个模型(用户)怎么可能只有一个其他模型(例如工作场所),但工作场所在 Sequelize.js 中属于许多用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56883960/

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