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
を与えます'as 'パラメータを必要とし、それを定義しようとする –