我有一个与其他模型相关的简单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,UserId和isUpVote.
我想设置一个UNIQUE约束TrackId和UserId(即一个复合索引,确保给定的轨道和用户只有一个投票记录).
如何才能做到这一点?
可以将两个外键定义为模型的复合主键吗?
用户只能是一个家庭的成员,一个家庭可以有许多成员,家庭成员表需要用户和家庭的参考
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)