Sequelize:模型定义中 "unique" 属性 的影响
Sequelize: effects of "unique" property in model definition
我在 NodeJS 服务器项目上使用 Sequelize v3.5.1 with PostgreSQL v9.4.4。
在模型定义中,我不太清楚将选项 unique: true
添加到 属性.
有什么影响
我们以这段代码为例:
sequelize.define('User', {
email: {
type: Sequelize.STRING,
unique: true
},
password: {
type: Sequelize.STRING,
allowNull: false
}
});
这是否意味着 PostgreSQL 将在 email
上建立唯一索引?那么,这只是一个 shorthand 方法吗?
sequelize.define('User', {
email: {
type: Sequelize.STRING,
},
password: {
type: Sequelize.STRING,
allowNull: false
}
}, {
indexes: [
{
unique: true,
fields: ['email']
}
]
});
如果是这样,这样的索引会加速 table 电子邮件查询,还是只是确保唯一性?
谢谢!
唯一索引可以做到这两点,它会加快查询速度(因为它必须创建索引),并且会确保每个值都是唯一的。
我在 NodeJS 服务器项目上使用 Sequelize v3.5.1 with PostgreSQL v9.4.4。
在模型定义中,我不太清楚将选项 unique: true
添加到 属性.
我们以这段代码为例:
sequelize.define('User', {
email: {
type: Sequelize.STRING,
unique: true
},
password: {
type: Sequelize.STRING,
allowNull: false
}
});
这是否意味着 PostgreSQL 将在 email
上建立唯一索引?那么,这只是一个 shorthand 方法吗?
sequelize.define('User', {
email: {
type: Sequelize.STRING,
},
password: {
type: Sequelize.STRING,
allowNull: false
}
}, {
indexes: [
{
unique: true,
fields: ['email']
}
]
});
如果是这样,这样的索引会加速 table 电子邮件查询,还是只是确保唯一性?
谢谢!
唯一索引可以做到这两点,它会加快查询速度(因为它必须创建索引),并且会确保每个值都是唯一的。