Я пытаюсь найти способ обработать связь между двумя моделями (Пользователь и Группа).Проблема здесь в том, что в группе может быть несколько пользователей (они могут быть членами группы / они могут быть участниками какого-либо события / программы, принадлежащей к одной группе)
Отношения между группой и пользователями: Пользователь принадлежитна несколько групп.группы могут иметь несколько пользователей.
Решение, которое я попробовал
User.belongsToMany(Group, {through: UserGroup, as : 'Members'});
User.belongsToMany(Group, {through: UserGroup, as : 'Attendees'});
Group.belongsToMany(User, {through: UserGroup, as : 'Users'});
Модель пользователя
const Sequelize = require('sequelize');
module.exports = (sequelize) => {
return sequelize.define('ssuser', {
id: {
type: Sequelize.INTEGER,
autoincrement: true,
allowNull : false,
primaryKey: true
},
email: {
type: Sequelize.STRING,
allowNull : false
},
firstName: Sequelize.STRING,
lastName: Sequelize.STRING
});
}
Модель группы:
module.exports = (sequelize) => {
return sequelize.define('ssgroup', {
id: {
type: Sequelize.INTEGER,
autoincrement: true,
allowNull : false,
primaryKey: true
},
ownerId: {
type: Sequelize.INTEGER,
allowNull : false,
},
name: {
type: Sequelize.STRING,
allowNull : false
},
description: {
type: Sequelize.TEXT,
allowNull : false
},
groupType: {
type: Sequelize.TEXT,
allowNull : false
}
});
}
АссоциацияUSERGROUP
const Sequelize = require('sequelize');
module.exports = (sequelize) => {
return sequelize.define('userGroup', {
id: {
type: Sequelize.INTEGER,
autoincrement: true,
allowNull : false,
primaryKey: true
}
});
}
Не уверен, как это поможет мне найти членов группы в одиночку или участников группы в одиночку.
Я ожидаю, что в таблице сопоставлений должны быть столбцы "Посетитель" "Член".Чтобы было проще получать данные пользователей, которые являются членами определенной группы.
Любая помощь по этому вопросу будет принята.