2017-04-10 1 views
0

알림 및 사용자가 포함 된 데이터베이스가 있습니다.1 : m 연결에서 중복 된 foreignKey를 sequelize

사용자는 하나의 사용자 만 알림을 생성 할 수 있지만 많은 알림을 만들 수 있습니다.

내가 이런 짓을 사용하여이 sequelize를 정의하려면 :

공지 사항 모델 :

'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; 
} 

사용자 모델 : 나는 중복 된 사용자 ID를 찾을 수

'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; 
}; 

응용 프로그램을 실행 한 후 (OwnerId 및 userId)를 발표 데이터베이스에 추가합니다. 오직 하나의 'OwnerId'여야합니다.

그래서 내가 잘못한 것은 무엇입니까?

답변

0

"foreignKey"의 철자가 틀렸고 "foreingKey"로 썼습니다. 지금은 다 괜찮아.

관련 문제