如何定义属于具有不同别名的关联

时间:2019-06-20 14:27:19

标签: node.js database sequelize.js

我正试图找到一种方法来处理两个模型(用户和组)之间的关联。这里的问题是组可以有多个用户(他们可以是组的成员,也可以是属于同一组的某个事件/程序的参与者)

组与用户之间的关系是: 用户属于多个组。 组可以有多个用户。

我尝试过的解决方案

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
    }
});
}

我不确定这将如何帮助我找到单独的小组成员或单独的小组参与者。

我希望关联表应具有“与会者”列“成员”列。 这样可以更容易地检索属于特定组的用户的数据。

任何帮助,将不胜感激。

0 个答案:

没有答案