2016-09-14 79 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不接受該選項。 –