database与gorm设计与实践 | 青训营笔记

36 阅读1分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 5 天

理解 database/sql

设计原理

4.jpg

GORM基础使用

基本用法

5.jpg

基本用法-CRUD

6.jpg

模型定义

约定优于配置

  • 表名为 struct name 的 snake_cases 复数格式
  • 字段名为 field name 的snake_case 单数格式
  • ID/id 字段为主键,如果为数字,则为自增主键
  • CreateAt 字段,创建时,保存当前时间
  • UpdatedAt 字段,创建、更新时,保存当期时间
  • gorm.DeleteAt 字段,默认开启 soft delete 模式

GORM 设计原理

SQL是怎么生成的

  • 自定义Clause Builder
  • 方便扩展Clause
  • 自由选择Clauses

插件 怎么工作的

7.jpg

8.jpg

多租户;多数据库、读写分离,加解密、混沌工程。

interpolateParams = false 执行前预编译SQL,调用预编译的SQL,关闭预编译的SQL

Dialector

  • 定制SQL生成
  • 定制GORM插件
  • 定制ConnPool
  • 定制企业特性逻辑