2016-11-12 6 views
2

私はテーブル構造としてユーザ詳細を選択します。sequelize jsマルチレベルテーブルcasecade join

表ユーザ列{USER_ID、region_idが、USER_NAME}私が参加しました

表領域の列{でregion_id、COUNTRY_ID}

表国列{COUNTRY_ID、COUNTRY_NAME}

テーブルモデル

db.user.hasOne(db.region, {foreignKey:"region_id", targetKey:"region_id"}); 
db.region.hasOne(db.country,{ foreignKey :"country_id", targetKey:"country_id" }); 
db.user.hasOne(db.country,{through:db.region,otherKey :"country_id", foreignKey :"user_id" }); 

今私はgoiですNGは地域名が含まれているユーザーの詳細を選択して、ここでは国の名前を含むようにすることは、私のコントローラ

models.user.findAll(
    { 
    include: [ 
     { 
      model: models.region, 
      model: models.country 
     } 
     ] 
}); 

であるが、このショーのユーザーは、それが参加するマルチレベルでなければなりません

は私に

答えて

1

を保存してください国に関連付けられていませんあなたのスキーマとして

このユーザーが所在地である場合、地域所属国 あなたには、いくつかの例がある関係についての詳細を検索することができ

一対一の関係:あなた、ユーザーとして、1(hasOneの) プロファイルを持つことができます。もちろん逆も当てはまります。プロファイル(belongsTo)a ユーザー。ユーザーは複数のプロファイルを持つことはできず、プロファイルは複数のユーザーに属することができません( )。

また

我々はbelongsToのメソッドを使用してhasOneの関係の逆を定義することができます。