0

スルーテーブルと多相的な自己関連付けを行う方法はありますか(コレクションには多数のコレクションがあります)。このシナリオにhttp://docs.sequelizejs.com/manual/tutorial/associations.html#n-mを適応しようとするとSequelizeには多くが属しています

collectionItem.js

const CollectionItem = sequelize.define("CollectionItem", { 
    uid: { 
     type: DataTypes.BIGINT, 
     primaryKey: true 
    }, 
    collectionUid: { 
     type: DataTypes.BIGINT, 
     allowNull: false, 
     unique: 'collection_item_collectible' 
    }, 
    order: { 
     type: DataTypes.INTEGER, 
     allowNull: false, 
     defaultValue: 0 
    }, 
    collectibleUid: { 
     type: DataTypes.BIGINT, 
     allowNull: false, 
     references: null, // Because the column is polymorphic, we cannot say that it REFERENCES a specific table 
     unique: 'collection_item_collectible' 
    }, 
    collectible: { 
     type: DataTypes.STRING, 
     allowNull: false, 
     unique: 'collection_item_collectible' 
    } 
}, { 
    classMethods: { 
    } 
}); 

ようになり

// Inside collection.js associate 
Collection.belongsToMany(Collection, { 
    through: { 
     model: models.CollectionItem, 
     unique: false, 
     scope: { 
      collectible: 'collection' 
     } 
    }, 
    foreignKey: 'collectibleUid', 
    constraints: false 
}); 

表を通じて参加/ Sequelizeは私がまだ別の通過異なり、この名前を付けたいようだが、その基本的に新しいテーブルを作成するだけでなく、真のhasAndBelongsToManyタイプの関係を得ることになります。

Error: 'as' must be defined for many-to-many self-associations

+0

を与えます'as 'パラメータを必要とし、それを定義しようとする –

答えて

1

明示されてみて、追加:nはセルフ・リレーション:

​​

asが新しい結合テーブルを作成しないエラーが言うように、それはちょうどメートル、関係に名前

関連する問題