先说结论
- 数据库层面:推荐使用snake_case。
- NestJS代码层面(Entity属性):推荐使用camelCase
- ORM(TypeORM):会帮助您在两者之间进行映射。
- 在nest里直接声明camelCase格式的字段名,在数据库里存储snake_case格式的字段,ORM会帮我们自动映射到正确的字段名
- 但是在设置外键的时候,我们我们必须使用snake_case格式,否则数据库迁移的时候会创建一个同名的camelCase字段,此外我们还需要再次声明一下这个字段但是不要用@Column装饰器,这样就可以正常互相映射了
- 执行数据库迁移的时候需要使用SnakeNamingStrategy,用来根据实体的camelCase格式的字段名在数据库生成snake_case格式的字段(注意需要在迁移配置里同样适用这个插件)