0
我有一個包含公告和用戶的數據庫。在1:m關聯上重複複製foreignKey
用戶可以創建很多通知,而通知僅由一個用戶創建。
來定義這個使用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;
}
用戶模式:
'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;
};
運行的應用程序後,我發現重複的用戶ID(OWNERID和公告數據庫中的userId)。它必須只有一個'OwnerId'。
那麼我做錯了什麼?