创建包括外键在内的复合唯一密钥



我有两个表"Users""Applications",使用户具有多个应用程序。现在,我想添加一个相反,每个用户都可以具有多个但唯一的应用程序名称。

我尝试过unique: 'compositeIndex',但它仅适用于列,而不是与'application'中的'userId'这样的外键列。

const createApplications = (sequelize, DataTypes) => {
    const applications = sequelize.define('applications', {
        name: {
            type: DataTypes.STRING,
            allowNull: false,
            unique: 'compositeIndex'
        }
    });
    applications.associate = models => {
        applications.belongsTo(models.users, {
            delete: 'CASCADE',
            foreignKey: 'user_id',
            unique: 'compositeIndex'
        });
    }
    return applications;
};

const createUsers = (sequelize, DataTypes) => {
    const users = sequelize.define('users', {
        eid: {
            type: DataTypes.STRING,
            allowNull: false
        },
        password: {
            type: DataTypes.STRING,
            allowNull: false
        }
    })
    return users;
};

您的问题有些混乱。看来您想要从'User''Application'表的一到许多映射。如果是这样,请看一下:续集一对一

请用预期结果编辑答案,以清除您想要的内容或添加表结构屏幕截图。

最新更新