2017-05-17 18 views
0

私はSequelizeで、子モデルに2つの方法で外部キーを追加できることを知りました。 1つはhasOne,belongsTo,hasManyなどを使用することです。もう一つの方法は、我々はこのようなモデルをconfigの際小道具にreferencesを追加することです:私はSequelizeのassosiationについて混乱しています

trainer_id: { 
    type: DataTypes.INTEGER, 
    references: { 
     model: "trainers", 
     key: "id" 
    } 
    } 

ので、それらの違いは何ですか?私はそれがrefrencesを使用して簡単だとわかりました。もしあなたが私に助言を与えることができたら、私はそれを感謝します。

答えて

0

referencesキーを追加することは、データベースレベルで外部キーが設定されていることを意味します。 hasOnebelongsTohasManyなどを使用すると、上記の処理が実行されますが、関連する便利なメソッドがモデルインスタンスに追加され、関連付けられたレコードが取得されます。

例: BlogPost belongsToカテゴリを使用している場合は、blogPost.getCategory()に電話して後編を処理できます。 belongsToリレーションシップを定義したため、自動的にgetCategoryメソッドがblogPostインスタンスに追加されました。私が知る限り、hasOne/belongsTo/hasManyの関連付けを宣言せずにreferencesを使用すると、これらの便利なメソッドは含まれません。

+0

ありがとうございました。今はっきりしています。多分もっと手を入れてみるべきだろう。 – laoqiren

関連する問題