gpt4 book ai didi

node.js - Sequelize 中具有另一个属性范围的唯一属性

转载 作者:行者123 更新时间:2023-12-03 22:24:13 25 4
gpt4 key购买 nike

是否可以在 Sequelize 模型上创建仅在另一个属性范围内强制唯一性的属性?

例如,假设 foo 必须是唯一的:

Thing.create({ foo: 1, bar: 1 });
Thing.create({ foo: 1, bar: 1 }); // Uniqueness violation!

但我希望允许以下内容:
Thing.create({ foo: 1, bar: 1 });
Thing.create({ foo: 1, bar: 2 }); // Allowed since bar is a different value

最佳答案

这可以通过 compositeIndex 来完成。

定义模型时,传递给 unique 验证的值可以是字符串。如果您提供的字符串与另一个属性上的另一个唯一验证值匹配,则这些属性将创建一个复合索引,该索引将强制这些值组合的唯一性。

Sequelize docs :

var Foo = sequelize.define('Foo', {

someUnique: {type: Sequelize.STRING, unique: true},
uniqueOne: { type: Sequelize.STRING, unique: 'uniqueCombo'},
uniqueTwo: { type: Sequelize.INTEGER, unique: 'uniqueCombo'}

});

关于node.js - Sequelize 中具有另一个属性范围的唯一属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29188891/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com