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

Mysql:关于命名

1. 用双引号包裹的情况下,命名时不允许使用空白字符、反引号,其它字符均可

2. 无双引号包裹的情况下,命名时仅允许使用:$、_、数字、大小写字母、中文字符(已知win系统支持),但不允许以数字开头

3. 库名、表名、列名仅在win系统下默认不区分大小写,可通过"charset=utf8_bin"设置后区分

【规范】

1. 仅使用小写字母下划线数字

2. 最大63个字符

3. 库名与表名不能相同,表名与内部列名不能相同

4. 不建议用 保留字 作为表名:

        如果写SQL语句时使用保持用反引号包裹的规范,可忽略此项

        否则建议命名时至少存在一个下划线作为间隔(完全避免与所有关键字重复),且前缀表示作用分类后缀表示具体类型。如:临时表(tmp_xxx)

5. 命名必须见名知意

6. 外键关联的列名,建议以"表名_id"命名

7. 【高级】获取外键表的数据时,在书写SQL语句时,对于外键表的列名建议重命名(AS)为"[自定义前缀]外键表_外键表的字段名",其中[自定义前缀]部分可省略。如:

        aa表的bb_id字段,关联bb表的id字段,查询bb表的name字段,可写为:SELECT `bb`.`name` AS `bb_name` FROM `aa` JOIN `bb` ON `bb`.`id`=`aa`.`bb_id`

        优点说明:可以在联合查询时,可由后端程序便捷生成查询列名,避免重复,且可见名知意

8. 建议均为每个表设置:

        主键:UUID安全性比自增ID更高,以"id"或"表名_id"命名

        唯一键:除了设置TOKEN数据外均不建议NULL;特殊情况可由同行的关键几列数据进行组合或转化后生成,步骤由后端程序控制

        创建时间:create_time 或 ctime

        更新时间:update_time 或 utime

    若需要用户或管理员,则再为每个表设置:

        创建者idcreate_user_id 或 cuser_id

        更新者idupdate_user_id 或 uuser_id

8. 若需要将A表的部分数据迁移到B表,则建议两表在迁移时各自对应的列名必须相同。如:将"购物车表"数据(goods_idgoods_count) 迁移到 "已完成订单表"数据(goods_idgoods_count)

http://www.dtcms.com/a/75722.html

相关文章:

  • CPP从入门到入土之类和对象Ⅰ
  • LLM中lora的梯度更新策略公式解析
  • 数据恢复软件有哪些?评测哪款最好用
  • 「清华大学、北京大学」DeepSeek 课件PPT专栏
  • jmeter配件元素
  • 网络编程基础(2)
  • 导出的使用
  • YOLOv11小白的进击之路(九)创新YOLO11损失函数之NWD损失函数源码解读
  • 分布式锁的实现
  • 大数据处理最容易的开源平台
  • 【从零开始学习计算机科学】软件测试(五)白盒测试
  • [K!nd4SUS 2025] Crypto
  • 手写发布订阅模式
  • MySQL使用pxc实现高可用
  • 【软件系统架构】单体架构
  • 突破 HTML 学习瓶颈:表格、列表与表单的学习进度(一)
  • 【Opencv中的Jpeg有损压缩】
  • 功能强大的电脑硬件检测及驱动安装工具
  • 【计算机视觉】工业表计读数(3)--指针及刻度关键点识别
  • Spring Boot 事务详解
  • 滑动数组-定长滑动数组
  • SSH无法使用root用户进行登陆的解决方法
  • 【HarmonyOS Next】鸿蒙应用实现弹框DialogHub详解
  • Excel(函数进阶篇):Vlookup函数进阶、TAKE嵌套SORE函数、SUBTOTAL函数、INDIRECT函数
  • 华为全流程全要素研发项目管理(81页PPT)(文末有下载方式)
  • 蓝桥杯练习day1:拆分数位-四位数字的最小和
  • 【深度解析】48V转24V/5A宽压电源芯片:SOT23-5封装+外挂MOS管应用方案
  • rust学习笔记17-异常处理
  • 《心理学与生活》2025最新网课答案
  • Python的Pytest(2)