对标题感到抱歉;我不知道如何更好地说出来。但我想要实现的就像User A
可以遵循User B
一样简单。我遇到的问题是User A
可以多次关注User B
。我不确定如何使用Sequelize
阻止这种情况?
追随者模型:
module.exports = function(sequelize, DataTypes) {
var followers = sequelize.define('followers', {
userId: {
type: DataTypes.INTEGER,
allowNull: true,
referenceces: {
model: 'user',
key: 'userId'
}
},
followerId: {
type: DataTypes.INTEGER,
allowNull: true,
referenceces: {
model: 'user',
key: 'userId'
}
},
}, {
classMethods: {
// associate: function(models) {
// followers.belongsTo(models.user, {
// onDelete: "CASCADE",
// foreignKey: {
// allowNull: false
// }
// });
// },
},
freezeTableName: true // Model tableName will be the same as the model name
});
return followers;
}
来自数据库的示例数据:
如您所见,userId 1
可以多次关注followerId 1
。 (忽略他们跟随自己的事实)。有什么想法,我怎么能防止这种情况发生?有什么东西我可以添加到模型中,还是我必须做.findOrCreate(...
函数?
+----+--------+------------+---------------------+---------------------+
| id | userId | followerId | createdAt | updatedAt |
+----+--------+------------+---------------------+---------------------+
| 1 | 1 | 1 | 2016-01-22 05:00:21 | 2016-01-22 05:00:21 |
| 2 | 1 | 1 | 2016-01-22 05:01:28 | 2016-01-22 05:01:28 |
| 3 | 1 | 1 | 2016-01-22 05:39:49 | 2016-01-22 05:39:49 |
| 4 | 1 | 1 | 2016-01-22 07:35:55 | 2016-01-22 07:35:55 |
+----+--------+------------+---------------------+---------------------+