当前位置: 首页 > article >正文

GORM 标签详解(数据库字段映射核心)

很多人刚学 GORM会觉得gorm:primaryKeygorm:indexgorm:not null这些东西像“魔法字符串”。其实它本质上是在告诉 GORM数据库这一列应该怎么创建也就是表结构规则一、结构体标签本质是什么例如typeUserstruct{Usernamestringgorm:column:username}这里gorm:...本质是给 GORM 的说明书。告诉它这个字段 在数据库里叫什么 有什么限制 怎么建立索引二、结构体标签重点标签场景数据流向json:xxx前后端交互前端 ↔ Go结构体gorm:column:xxx数据库映射Go结构体 ↔ MySQLtoml:xxx/ini:xxx配置文件读取配置文件 → Go结构体三、gorm 标签到底在干什么例如typeUserstruct{IDuintgorm:primaryKeyUsernamestringgorm:uniqueIndex;not null}GORM看到后会自动生成CREATETABLEusers(idBIGINTPRIMARYKEYAUTO_INCREMENT,usernameVARCHAR(255)NOTNULLUNIQUE);也就是说gorm 标签 本质是在控制 SQL四、primaryKey主键示例IDuintgorm:primaryKey五、主键是什么主键本质每条数据的唯一身份证例如idusername1zhangsan2lisi这里id 就是主键六、主键三个核心特性1. 唯一不能重复不能两个用户都是 id12. 不能为空每条数据必须有主键。3. 一张表通常只有一个主键因为身份证只能有一个七、GORM 里的 primaryKey 默认自增例如IDuintgorm:primaryKey插入时db.Create(user)你不用写ID:1MySQL会自动1 2 3 4增长。八、uniqueIndex唯一索引示例Usernamestringgorm:uniqueIndex九、作用值不能重复例如用户名。十、为什么用户名必须唯一如果两个用户都叫 zhangsan登录就乱了。所以需要唯一索引十一、底层 SQLGORM会生成UNIQUEINDEX数据库自动保证不能重复十二、index普通索引示例Phonestringgorm:index十三、索引到底是什么重点很多新人只知道WHERE 查询但真正决定查询速度的是索引十四、没有索引会怎样例如SELECT*FROMusersWHEREphone123如果没索引数据库只能一行一行找这叫全表扫描非常慢。十五、有索引会怎样有索引后数据库类似查目录直接定位。速度会快非常多。十六、为什么索引像书目录例如字典。你不会第一页开始翻而是查目录索引本质就是数据库目录十七、普通索引 vs 唯一索引类型能重复吗查询快吗index能快uniqueIndex不能快十八、not null不能为空示例Usernamestringgorm:not null十九、作用数据库会限制这一列必须有值不能NULL二十、为什么需要 not null例如用户名。你总不能用户名为空否则系统逻辑会炸。二十一、type 指定字段类型示例Phonestringgorm:type:char(11)或者Usernamestringgorm:type:varchar(20)二十二、char 和 varchar 区别重点很多新人这里会懵。char固定长度例如char(11)永远占11位varchar可变长度例如varchar(20)最多20。实际多少占多少。二十三、什么时候用 char例如手机号长度固定11位适合char(11)二十四、什么时候用 varchar例如用户名长度不固定适合varchar二十五、default 默认值示例Statusintgorm:default:1二十六、作用插入数据时如果没传自动使用默认值二十七、真实场景例如用户状态1 正常 0 封禁注册时默认1二十八、comment 注释示例Usernamestringgorm:comment:用户名二十九、作用只给开发人员看。数据库里会显示字段说明但不影响功能三十、多个标签同时写真实开发经常这样typeUserstruct{IDuintgorm:primaryKeyUsernamestringgorm:type:varchar(20);uniqueIndex;not null;comment:用户名Phonestringgorm:type:char(11);indexStatusintgorm:default:1}三十一、分号是什么意思多个规则例如gorm:type:varchar(20);not null表示varchar(20) 不能为空三十二、GORM 自动建表很多时候db.AutoMigrate(User{})GORM会根据结构体 gorm标签自动生成表。三十三、真实项目最常见字段真实开发几乎都有typeUserstruct{IDuintgorm:primaryKeyUsernamestringgorm:type:varchar(20);uniqueIndex;not nullPasswordstringgorm:type:varchar(255);not nullCreatedAt time.Time UpdatedAt time.Time DeletedAt gorm.DeletedAtgorm:index}三十四、CreatedAt 和 UpdatedAtGORM会自动维护创建时间 更新时间三十五、DeletedAt软删除DeletedAt gorm.DeletedAt表示软删除删除时不是DELETE而是UPDATEdeleted_atNOW()三十六、为什么真实项目大量使用软删除因为很多数据不能真删例如订单用户日志需要可恢复三十七、gorm 标签真正核心思想你一定要理解gorm 标签 本质是在描述数据库表结构它不是Go语法而是数据库规则三十八、最后总结GORM 标签本质控制数据库字段规则最核心标签标签作用primaryKey主键uniqueIndex唯一索引index普通索引not null非空type指定字段类型default默认值comment注释真正核心理解结构体 Go里的数据模型 gorm标签 数据库规则 GORM 自动帮你生成SQL

相关文章:

GORM 标签详解(数据库字段映射核心)

很多人刚学 GORM: 会觉得: gorm:"primaryKey" gorm:"index" gorm:"not null"这些东西: 像“魔法字符串”。 其实: 它本质上是在告诉 GORM: 数据库这一列应该怎么创建也就是:…...

快速从 Excel 文件导入 SQL 数据库的方法与分析

引言 在日常数据处理、数据迁移或系统初始化工作中,我们经常需要将存储在 Excel 文件中的数据导入到 SQL 数据库(如 MySQL, PostgreSQL, SQL Server 等)中。手动逐条录入不仅效率低下,而且容易出错。本文将系统性地分析几种主流、高效的 Excel 导入 SQL 方法,并对比其优缺…...

uniAPP 所有章节知识体系概述和网站播放器落地一体方案

uniAPP 前十章知识体系 由于 uni-app 并没有官方统一的"前十章"教程划分,不同教材的章节结构有所不同。以下基于多本主流教材内容,整合出一套通用的 uni-app 学习路线,涵盖从入门基础到后端通信的核心知识。 第1章 初识 uni-app 本章是学习的起点,帮助建立对 …...

AI Agent Harness多租户数据隔离

AI Agent Harness多租户数据隔离:构建企业级智能协作平台的安全基石 1. 引入与连接:从一场云端智能客服泄露事故谈起 核心概念: AI Agent(智能代理):具备自主感知、推理决策、行动执行能力的软件实体,可代表个人/组织完成特定任务,是当前大模型应用落地的核心载体 AI …...

用 AutoGen 编排多智能体协作,让 AI 团队帮你干活

🧑‍💻 博主介绍 & 诚邀关注 作者:专注于 Java、Python、前端开发的技术博主 | 全网粉丝 30 万 在校期间协助导师完成毕业设计课题分类、论文格式初审及代码整理工作;工作后持续分享毕设思路,助力毕业生顺利完成…...

如何免费将PPTX转换为HTML?探索纯JavaScript解决方案的完整指南

如何免费将PPTX转换为HTML?探索纯JavaScript解决方案的完整指南 【免费下载链接】PPTX2HTML Convert pptx file to HTML by using pure javascript 项目地址: https://gitcode.com/gh_mirrors/pp/PPTX2HTML 在数字化办公时代,PPTX2HTML作为一款纯…...

5分钟掌握WebPShop:Photoshop终极WebP插件完全指南

5分钟掌握WebPShop:Photoshop终极WebP插件完全指南 【免费下载链接】WebPShop Photoshop plug-in for opening and saving WebP images 项目地址: https://gitcode.com/gh_mirrors/we/WebPShop 还在为Photoshop无法原生处理WebP格式而烦恼吗?WebP…...

94、【Agent】【OpenCode】edit 工具提示词(参数内容)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除 背景 上篇 blog 【Agent】【OpenCode】edit 工…...

93、【Agent】【OpenCode】edit 工具提示词(二)

【声明】本博客所有内容均为个人业余时间创作,所述技术案例均来自公开开源项目(如Github,Apache基金会),不涉及任何企业机密或未公开技术,如有侵权请联系删除 背景 上篇 blog 【Agent】【OpenCode】edit 工…...

新手教程使用curl命令快速测试Taotoken的OpenAI兼容接口

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 新手教程:使用curl命令快速测试Taotoken的OpenAI兼容接口 基础教程类,面向刚注册Taotoken的开发者&#xf…...

DeepSeek数据脱敏与联邦学习实战方案(2024最新版零信任架构白皮书)

更多请点击: https://intelliparadigm.com 第一章:DeepSeek数据隐私保护概述 DeepSeek系列大模型在训练与推理过程中严格遵循数据最小化、目的限定及用户可控原则,其隐私保护机制贯穿数据采集、预处理、模型训练、服务部署与日志管理全生命周…...

DeepSeek长上下文能力解密(官方未公开的context-aware attention调度机制)

更多请点击: https://codechina.net 第一章:DeepSeek长上下文能力解密(官方未公开的context-aware attention调度机制) DeepSeek系列模型在128K token上下文场景中展现出远超同规模模型的稳定性与推理一致性,其核心并…...

现在不掌握AI视频学习底层逻辑,3个月内将被淘汰:基于LinkedIn人才数据的技能贬值倒计时分析

更多请点击: https://intelliparadigm.com 第一章:AI视频生成工具学习曲线分析 AI视频生成工具的学习曲线呈现出显著的非线性特征——入门门槛看似平缓,但跨越“可用”到“可控”阶段往往遭遇陡峭的认知断崖。初学者常误以为上传文本提示即可…...

5大AI音频处理插件:用OpenVINO为Audacity注入本地智能处理能力

5大AI音频处理插件:用OpenVINO为Audacity注入本地智能处理能力 【免费下载链接】openvino-plugins-ai-audacity A set of AI-enabled effects, generators, and analyzers for Audacity. 项目地址: https://gitcode.com/gh_mirrors/op/openvino-plugins-ai-audaci…...

G-Helper完整指南:轻量级华硕笔记本控制工具,开源替代Armoury Crate的明智之选

G-Helper完整指南:轻量级华硕笔记本控制工具,开源替代Armoury Crate的明智之选 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops with nearly the same functionality. Works with ROG Zephyrus, Flow, TUF, Strix, S…...

在Windows电脑上完整体验AirPods功能:终极解决方案AirPodsDesktop

在Windows电脑上完整体验AirPods功能:终极解决方案AirPodsDesktop 【免费下载链接】AirPodsDesktop ☄️ AirPods desktop user experience enhancement program, for Windows and Linux (WIP) 项目地址: https://gitcode.com/gh_mirrors/ai/AirPodsDesktop …...

基于Silvaco的β-氧化镓(β-Ga₂O₃)基MSM型日盲紫外光电探测器仿真研究

基于Silvaco的β-氧化镓(β-Ga₂O₃)基MSM型日盲紫外光电探测器仿真研究 摘要 日盲紫外光电探测技术在导弹预警、火灾监测、紫外通信等军用和民用领域具有重要的应用价值。β-氧化镓(β-Ga₂O₃)作为一种超宽禁带半导体材料,因其禁带宽度约为4.8-4.9 eV(对应吸收截止边约25…...

徒手撸极简前后端分离Demo!吃透原生JS动态渲染底层

之前一直觉得前后端分离是个特别高大上的工程化概念,总以为得学一堆框架、接口规范、部署流程才能上手。 直到昨天我没用Vue、没用React,纯靠原生JSHTMLCSSjson-server,手写了一套最朴素的前后端分离小案例,瞬间把底层逻辑彻底打通…...

化学教学平台——数据可视化与电化学AI动画推演

化学教学平台——数据可视化与电化学AI动画推演 1 项目概述 本化学教学平台是一套完整的前端Web应用,旨在为化学教育工作者和学生提供两个核心功能模块:数据智能查询与化学性质可视化(基于ECharts和D3.js),以及反应模拟预判——基于电化学原理的AI动画推演(基于Three.j…...

终极AMD Ryzen调试工具:免费开源的硬件掌控神器

终极AMD Ryzen调试工具:免费开源的硬件掌控神器 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: https://gitcode.…...

利用 Taotoken 为不同业务场景动态选择最合适的大模型

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 利用 Taotoken 为不同业务场景动态选择最合适的大模型 在构建一个集成了大模型能力的应用时,一个常见的挑战是如何为不…...

企业级多模型聚合平台选型,如何通过用量看板实现成本精细化管理

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 企业级多模型聚合平台选型,如何通过用量看板实现成本精细化管理 当企业技术团队决定将大模型能力深度融入业务流程时&a…...

告别账单惊吓,Taotoken Token Plan 如何让成本更可控

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 告别账单惊吓,Taotoken Token Plan 如何让成本更可控 对于依赖大模型 API 进行开发的团队和个人而言,项目成…...

终极指南:如何5步免费使用Cursor Pro破解工具实现永久免费AI编程

终极指南:如何5步免费使用Cursor Pro破解工具实现永久免费AI编程 【免费下载链接】cursor-free-vip [Support 0.45](Multi Language 多语言)自动注册 Cursor Ai ,自动重置机器ID , 免费升级使用Pro 功能: Youve reache…...

m4s-converter技术解析:跨平台B站缓存视频无损转换方案

m4s-converter技术解析:跨平台B站缓存视频无损转换方案 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter m4s-converter是一个专业的开…...

使用Taotoken后API调用延迟与账单透明度的实际体验

🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 使用Taotoken后API调用延迟与账单透明度的实际体验 1. 引言 对于需要调用多种大模型API的开发者而言,统一接入和成本管…...

免费在线去水印软件推荐(2026保姆级教程):别让水印毁了你的好素材

你是不是也遇到过这种抓狂瞬间?刷到一段绝美空镜,想存下来做壁纸却挂着硕大的水印;朋友发来一张搞笑表情包,转发前发现左下角Logo碍眼得要命;好不容易找到一张配图素材,精心裁了半天还是绕不开那行半透明的…...

本地大语言模型推理新选择:为什么llama-cpp-python成为开发者首选?

本地大语言模型推理新选择:为什么llama-cpp-python成为开发者首选? 【免费下载链接】llama-cpp-python Python bindings for llama.cpp 项目地址: https://gitcode.com/gh_mirrors/ll/llama-cpp-python 在人工智能快速发展的今天,能够…...

明日方舟桌宠Ark-Pets显卡优化配置指南:3步实现流畅桌面动画

明日方舟桌宠Ark-Pets显卡优化配置指南:3步实现流畅桌面动画 【免费下载链接】Ark-Pets Arknights Desktop Pets | 明日方舟桌宠 (ArkPets) 项目地址: https://gitcode.com/gh_mirrors/ar/Ark-Pets Ark-Pets是一款基于《明日方舟》角色模型的桌面宠物软件&am…...

文档自动化下载革命:30+平台一键下载解决方案

文档自动化下载革命:30平台一键下载解决方案 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的烦…...