【发布时间】:2015-01-08 02:26:50
【问题描述】:
我使用 Sequelize 定义了以下模型:
module.exports = function (sequelize, DataTypes) {
var Genre = sequelize.define('Genre', {
name: {
type: DataTypes.STRING,
allowNull: false
}
}, {
classMethods: {
associate: function (models) {
Genre.hasMany(models.Genre, {as: 'subGenre'});
Genre.belongsTo(models.Genre, {as: 'parentGenre'});
}
}
});
return Genre;
}
这个想法是会有父流派,每个可能有几个子流派。当我运行sync() 时,表创建得很好,但是有一个额外的列(GenreId)我无法解释:
"id";"integer";
"name";"character varying";255
"createdAt";"timestamp with time zone";
"updatedAt";"timestamp with time zone";
"GenreId";"integer";
"parentGenreId";"integer";
解释模型的明智方法是只有一个parentGenreId 列,但我不确定如何定义只有一列的双向关系(流派可能有父,流派可能有很多子)已添加。
如何修改模型以正确定义关系?
【问题讨论】: