Sequelize.js 使关联成为列的唯一ID

Sequelize.js 使关联成为列的唯一ID,sequelize.js,Sequelize.js,我希望数据库中的用户有一个标记列表。我希望标签表有两列: 用户ID-用户ID 标签名称-标签 我目前已经尝试过让User.hasMany(标记,{primaryKey:true,foreginKey:'userId'}) 但我最终在所有其他列的顶部都有一个“ID”列。我希望“UserID/TagName”是唯一的关联(意味着用户和标记只能有一个实例)最简单的选择是添加一个新的迁移,对UserID和标记有唯一的约束,如下所示 module.exports = { up(queryInterfa

我希望数据库中的用户有一个
标记列表
。我希望标签表有两列:

  • 用户ID-
    用户ID

  • 标签名称-
    标签
  • 我目前已经尝试过让User
    .hasMany(标记,{primaryKey:true,foreginKey:'userId'})
    
    但我最终在所有其他列的顶部都有一个“ID”列。我希望“UserID/TagName”是唯一的关联(意味着用户和标记只能有一个实例)

    最简单的选择是添加一个新的迁移,对UserID和标记有唯一的约束,如下所示

    module.exports = {
      up(queryInterface, Sequelize) {
        const sql = 'ALTER TABLE Tags ADD CONSTRAINT user_id_tag UNIQUE(userId, tag)';
    
        return queryInterface.sequelize.query(sql, { type: Sequelize.QueryTypes.RAW,
          raw: true,
        });
      },
      down(queryInterface, Sequelize) {
        const sql = 'ALTER TABLE Tags DROP CONSTRAINT IF EXISTS user_id_tag';
    
        return queryInterface.sequelize.query(sql, { type: Sequelize.QueryTypes.RAW,
          raw: true,
        });
      },
    };