У меня есть следующие таблицы базы данных: Событие, Пользователь и Избранное.
Многие пользователи могут добавить в избранное событие, а пользователь может добавить в избранное много событий.
Схема таблицы избранного:
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)
);
Мне нужен запрос, который возвращает все события и информацию (предпочтительно логическую) относительно того, является ли каждое событие предпочтительным для пользователя (его идентификатор доступен, и вы можете назвать его 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'});