2016-04-05 4 views
0

Я хочу добавить таблицу предложений в качестве внешнего ключа в таблицу предложений. используя sequelize и ниже модель записывается в angularjs.Как создать ассоциацию hasMany в sequelize

module.exports = function(sequelize, DataTypes) { 
let offerzone = sequelize.define('offerzone', { 
title: DataTypes.STRING, 
moid: DataTypes.INTEGER, 
seoTandC: DataTypes.STRING, 
isActive: DataTypes.BOOLEAN, 
set: DataTypes.ARRAY(DataTypes.STRING), 
isDeleted: DataTypes.BOOLEAN 
}, { 
classMethods: { 
    associate: function(models) { 
    offerzone.belongsToMany(models.offerset, { 
     through: 'models.offerset' 
     foreign-key: 'offerzone' 
     as: 'offerset' 
    }); 

    // associations can be defined here 
    } 
} 
}); 
return offerzone; 
}; 

ответ

0

Чтобы определить hasMany-ассоциацию, выполните следующие действия, если вы хотите, например, иметь видеоматериалы с многочисленными комментариями.

В видео вы будете иметь что-то подобное для вас видео модель

module.exports = function (sequelize, DataTypes) { 
    var Video = sequelize.define("Video", { 
     author: { 
      type: DataTypes.STRING, 
      allowNull: false 
     } 
    }, { 
     classMethods: { 
      associate: function (models) { 
       Video.hasMany(models.Comment, {foreignKey: 'videoid', onDelete: 'cascade', hooks: true}); 
      } 
     } 
    }); 
    return Video; 
}; 

Комментарий модель будет:

module.exports = function (sequelize, DataTypes) { 
    var Comment = sequelize.define("Comment", { 
     commentary: { 
      type: DataTypes.TEXT, 
      allowNull: false 
     } 
    }, { 
     classMethods: { 
      associate: function (models) { 
       Comment.belongsTo(models.Video, {foreignKey: 'videoid', allowNull: false}); 
      } 
     } 
    }); 
    return Comment; 
}; 

Часть onDelete: 'cascade', hooks: true означает, что если вы удалите видео с Комментарии также будут удалены