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 电子邮件查询,还是只是确保唯一性?

谢谢!

唯一索引可以做到这两点,它会加快查询速度(因为它必须创建索引),并且会确保每个值都是唯一的。