0
私はアナウンスとユーザーを含むデータベースを持っています。1:m関連でduplicated foreignKeyを続ける
ユーザーは多くのアナウンスを作成できますが、アナウンスは1人のユーザーのみ作成できます。
が、私はこれをしなかった、この使用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)をアナウンスデータベースに追加します。 「所有者ID」は1つだけでなければなりません。
私は間違ったことは何ですか?