相关疑难解决方法(0)

Sequelize模型中外键的​​唯一约束

我有一个与其他模型相关的简单Sequelize模型.

module.exports = function (sequelize, DataTypes) {
  var Votes = sequelize.define('Votes', {
    isUpVote: DataTypes.BOOLEAN
  }, {
    classMethods: {
      associate: function (models) {
        Votes.belongsTo(models.Track);
        Votes.belongsTo(models.User);
      }
    }
  });

  return Votes;
}
Run Code Online (Sandbox Code Playgroud)

Sequelize会生成一个表有id,TrackId,UserIdisUpVote.

我想设置一个UNIQUE约束TrackIdUserId(即一个复合索引,确保给定的轨道和用户只有一个投票记录).

如何才能做到这一点?

sequelize.js

11
推荐指数
1
解决办法
4336
查看次数

Sequelize,外键作为复合主键

可以将两个外键定义为模型的复合主键吗?

用户只能是一个家庭的成员,一个家庭可以有许多成员,家庭成员表需要用户和家庭的参考

const User = sequelize.define(
    'User',
    {
        id: { type: dataTypes.INTEGER.UNSIGNED, autoIncrement: true, primaryKey: true },
        name: { type: dataTypes.STRING(30) },
        email: { type: dataTypes.STRING(30) }
        ...
    },
    {
        classMethods: {
            associate(models) {
                User.hasOne(models.FamilyMember, {
                    foreignKey: 'user_id'
                }
            }
        }
    }
)

const Family = sequelize.define(
    'Family',
    {
        name: { type: dataTypes.STRING(30) }
    },
    {
        classMethods: {
            associate(models) {
                Family.hasMany(models.FamilyMember, {
                    foreignKey: 'family_id'
                }
            }
        }
    }
)

const FamilyMember = sequelize.define(
    'FamilyMember',
    {
        name: { type: dataTypes.STRING(30) }, …
Run Code Online (Sandbox Code Playgroud)

node.js sequelize.js

10
推荐指数
2
解决办法
1万
查看次数

标签 统计

sequelize.js ×2

node.js ×1