创建一个新的实例来更新其他人,Sequelize,NodeJs,Express,Postgres



我正在使用Nodejs、Express和Sequelize。我有一个名为Categories的Postgres表,其中有一个viewOrder字段:

module.exports = (sequelize, DataTypes) => {
const Category = sequelize.define(
'Category',
{
name: DataTypes.STRING,
viewOrder: {
type: DataTypes.INTEGER,
allowNull: false,
unique: true
}
},
{}
);
return Category;
};

插入新记录可能会带来问题,因为如果现有记录的查看顺序为[1,2,3,4,5],并且新记录的顺序视图为4,则当前的4必须更改为5,并且当前的5必须更改为6

(我强制这个订单视图是连续的数字,从前端(

我想一个简单的分类创建是不够的

更新也可能会导致问题,如果我想将viewOrder为5的记录更改为viewOrder为3,那么也必须更改view order为3和4的记录,以及我们正在更新的

我如何在Sequelize中做到这一点?

提前感谢

Rafael

依赖前端来维护viewOrder的唯一值是一个糟糕的想法。Sequelize也是如此。最可靠的方法是通过PostgreSQL本身生成这样的唯一值,或者创建一个序列(如果您不需要重用生成的值(,或者在Category表上添加一个触发器。

最新更新