【问题标题】:Making an association the only ID for a column使关联成为列的唯一 ID
【发布时间】:2017-11-13 04:23:11
【问题描述】:

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

  1. 用户 ID -userId
  2. 标签名称 -tag

我目前已尝试通过设置 User.hasMany(Tags, { primaryKey: true, foreginKey: 'userId' }); 但我最终在所有其他列的顶部有一个“ID”列。我希望“UserID/TagName”是唯一的关联(意味着 Usertag 的实例只能有一次

【问题讨论】:

    标签: sequelize.js


    【解决方案1】:

    最简单的选择是在 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,
        });
      },
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多