sequelize默认id主键可以改吗_Sequelize小技巧

b150a3ede2b20e6dbd7ecbc0942041f5.png

Sequelize.js是一个用于Node.js的数据库ORM库,支持Postgres、MySQL/MariaDB、SQLite、SQL Server等引擎。

本文记录一些团队在使用Sequelize过程中积累的经验教训。

介绍

ORM即Object Relational Mapping,中文叫“对象关系映射”。简单地说就是可以将数据库的各种对象(表、字段)及关系映射为程序语言的对象和关系,从而使开发者不需要直接操作数据库,转而操作对象即可。

例如,将表user映射为模型User后,从数据库中查询id1的用户就可以直接调用findOne()方法:

const user = await User.findOne({
    where: {
        id: 1
    }
});

这样做会带来几个明显的好处:

  1. 难度开发难度:ORM都有完善的文档,几乎所有的操作只需要按文档调用指定方法即可,不需要自己拼接SQL
  2. 提升安全性:ORM会处理好SQL注入问题,不需要开发者关注
  3. 降低封装复杂度:公共逻辑可以基于ORM封装,非常方便
下文不区分“模型”和“Model”,均指Sequelize中与数据表对应的数据模型。

命名

团队合作中统一大家的命名规则是很重要的事情,因此一般稍微规范一些的团队都会有比较详尽的命名规范。但是不同地方的命名规则却不一定完全一致,例如:

  • 数据库规范:表名及字段名使用小写字母,单词间以下划线分隔
  • JS编码规范:变量命名使用驼峰式命名(即首字母小写,后续单词的首字母大写)

这种情况可以通过Sequelize模型定义来解决,直接指定表名和字段名即可:

sequelize.define('targetInfo', {
    targetId: {
        type: DataTypes.INTEGER(11),
        allowNull: true,
        field: 'target_id',
    },
}, {
    tableName: 'target_info',
});

上例中的target_id字段,在使用Sequelize的Model时就可以使用

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值