【发布时间】:2018-11-14 03:49:48
【问题描述】:
我有以下数据库表:事件、用户和收藏夹。
一个事件可以被很多用户收藏,一个用户可以收藏很多事件。
最喜欢的表架构是:
CREATE TABLE favorites
(
user_id INTEGER REFERENCES users(id) ON DELETE CASCADE,
event_id INTEGER REFERENCES events(id) ON DELETE CASCADE,
PRIMARY KEY (user_id, event_id)
);
我需要的是一个查询,它返回所有事件和关于每个事件是否被用户收藏的信息(最好是布尔值)(它的 ID 可用,你可以称之为 user_id)。
到目前为止我已经尝试过:
Event.findAll({
include: {
model: sequelize.models.favorites,
required: false,
where: {
user_id: user_id
}
}
});
在事件模型中我有关联
models.events.belongsToMany(models.users, { through: 'favorites'});
在用户模型中我有关联
models.users.belongsToMany(models.events, { through: 'favorites'});
【问题讨论】:
标签: node.js postgresql sequelize.js