我正试图找到一种方法来处理两个模型(用户和组)之间的关联。这里的问题是组可以有多个用户(他们可以是组的成员,也可以是属于同一组的某个事件/程序的参与者)
组与用户之间的关系是: 用户属于多个组。 组可以有多个用户。
我尝试过的解决方案
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
}
});
}
我不确定这将如何帮助我找到单独的小组成员或单独的小组参与者。
我希望关联表应具有“与会者”列“成员”列。 这样可以更容易地检索属于特定组的用户的数据。
任何帮助,将不胜感激。