2016-09-14 54 views
0

如果MemberMemberAddition是模型;续集有一个关联限制

我创建的关联,如:

Member.hasOne(MemberAdditional); 
MemberAddition.belongsTo(Member); 

创建具有自动生成的关键成员Id

的一个一对一的关系,但我怎么能限制相关MemberAddition纪录之一。

我用内置的功能,使相关:

// Used ES7 async/await 
const member = await Member.create({ ... }); 
const addition1 = await MemberAddition.create({ ... }); 
const addition2 = await MemberAddition.create({ ... }); 

await addition1.setMember(member); 
await addition2.setMember(member); // Should be failed or set addition1 MemberId null 

谢谢

回答

0

在你MemberAddition模型添加字段的唯一约束。

memberId: { 
    type: Sequelize.INTEGER, 
    unique: true 
} 
+0

如果我必须为自动生成的相关字段设置唯一的,hasMany和hasOne有什么不同? –

+1

我明白你的意思了,虽然我认为答案是:hasMany会将getMemberAdditionals()添加到成员的实例,并且hasOne会将getMember()添加到MemberAdditional的实例。 也许一个好的选择是传递例如:Member.hasOne(MemberAdditional,{through:{unique:true}}),但似乎hasOne不接受该选项。 –