2016-09-14 16 views
0

MemberおよびMemberAdditionがモデルの場合、Sequelize hasOne関連制限

私のような関連付けを作成:自動生成キーMEMBERID

と1対1の関係を作成するために

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

しかし、どのように私は1つに関連する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 

は、モデルがユニーク制約を持つフィールドを追加MemberAdditionあなたにあなたに

答えて

0

ありがとうございます。

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

自動生成相対フィールドに一意に設定する必要がある場合、hasManyとhasOneの違いは何ですか? –

+1

私はあなたが意味するものを参照してください、私はそれに対する答えがあると思います:hasManyはMemberのインスタンスにgetMemberAdditionals()を追加し、hasOneはMemberAdditionalのインスタンスにgetMember()を追加します。 例えば、Member.hasOne(MemberAdditional、{through:{unique:true}})を渡すのが良いオプションかもしれませんが、hasOneはそのオプションを受け入れていないようです。 –

関連する問題