在Sequelize.js中为关系表设置安全删除模式

时间:2015-02-25 13:47:20

标签: mysql orm sequelize.js

所以,假设我们有Sequelize模型:

 var User = sequelize.define("User", {
        id: {
            type: DataTypes.STRING(45),
            allowNull: false,
            primaryKey: true
        },
        password: {
            type: DataTypes.STRING(60),
            allowNull: false
        },
        email: {
            type: DataTypes.STRING(45),
            allowNull: false,
            unique: true
        },
        firstName: {
            type: DataTypes.STRING(45),
            allowNull: true,
            defaultValue: null
        }
    },
    {
            tableName: 'profiles',
            classMethods: {
                associate: function(models) {
                    User.belongsToMany(User, {through: 'friends', as:'friend'});
                }
            }
        });

在调用associate()方法之后,它将创建一个包含friendsuserIdfriendIdcreatedAt列的额外表updatedAt。情况是我需要使用此表安全删除模式,换句话说,我必须添加'删除'专栏。我尝试在belongsToMany的属性中使用paranoid: true,但没有用。有什么办法吗?

1 个答案:

答案 0 :(得分:2)

也许你可以创建一个名为Friend的模型/表格。并且您可以在该模型中设置偏执:true。当您删除用户时,它会保持用户的朋友关系保持在该模型中。

我希望它有效。 :)