2017-04-10 1 views
0

J'ai une base de données qui contient des annonces et des utilisateurs.sequelize dupliqué foreignKey sur l'association 1: m

Les utilisateurs peuvent créer plusieurs annonces, tandis qu'une annonce est créée par un seul utilisateur.

pour définir ce en utilisant sequelize Je l'ai fait:

le modèle des annonces:

'use strict'; 
module.exports = function (sequelize, DataTypes) { 
    var announcement = sequelize.define('announcements', { 
     id: { 
      type: DataTypes.INTEGER, 
      primaryKey: true, 
      autoIncrement: true 
     }, 
     title: DataTypes.STRING, 
     description: DataTypes.TEXT, 
     likes: DataTypes.INTEGER 
    }, { 
     classMethods: { 
      associate: function (models) { 
       /** 
       * an announcement is created by only one user 
       */ 
       announcement.belongsTo(models.users, { 
        as: 'Owner' 
       }); 
      } 
     } 
    }); 
    return announcement; 
} 

modèle utilisateurs:

'use strict'; 
module.exports = function (sequelize, DataTypes) { 
    var users = sequelize.define('users', { 
     id: { 
      type: DataTypes.INTEGER, 
      primaryKey: true 
     }, 
     username: { 
      type: DataTypes.STRING, 
      unique: true 
     }, 
     email: { 
      type: DataTypes.STRING, 
      unique: true, 
      validate: { 
      isEmail: true 
      } 
     } 
    }, { 
     timestamps: true, 
     classMethods: { 
      associate: function (models) { 
       /** 
       * a user has many announcements 
       */ 
       users.hasMany(models.announcements, { 
        as: 'Announcements', 
        foreingKey: { 
         name: 'id', 
         allowNull: false 
        } 
       }); 
      } 
     } 
    }); 
    return users; 
}; 

après l'exécution de l'application que je trouve userid dupliquée (OWNERID et userId) dans la base de données des annonces. il doit s'agir d'un seul 'OwnerId'.

alors quelle est la chose que j'ai mal fait?

Répondre

0

J'ai trouvé le problème: j'ai mal orthographié "foreignKey" et l'ai écrit comme "foreingKey". maintenant tout va bien