当前位置: 首页 > 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)

相关文章:

  • CPP从入门到入土之类和对象Ⅰ
  • LLM中lora的梯度更新策略公式解析
  • 数据恢复软件有哪些?评测哪款最好用
  • 「清华大学、北京大学」DeepSeek 课件PPT专栏
  • jmeter配件元素
  • 网络编程基础(2)
  • 导出的使用
  • YOLOv11小白的进击之路(九)创新YOLO11损失函数之NWD损失函数源码解读
  • 分布式锁的实现
  • 大数据处理最容易的开源平台
  • 【从零开始学习计算机科学】软件测试(五)白盒测试
  • [K!nd4SUS 2025] Crypto
  • 手写发布订阅模式
  • MySQL使用pxc实现高可用
  • 【软件系统架构】单体架构
  • 突破 HTML 学习瓶颈:表格、列表与表单的学习进度(一)
  • 【Opencv中的Jpeg有损压缩】
  • 功能强大的电脑硬件检测及驱动安装工具
  • 【计算机视觉】工业表计读数(3)--指针及刻度关键点识别
  • Spring Boot 事务详解
  • 一旅客因上错车阻挡车门关闭 ,株洲西高铁站发布通报
  • 首映|《星际宝贝史迪奇》真人电影,不变的“欧哈纳”
  • 南宁一学校发生伤害案件,警方通报:嫌疑人死亡,2人受伤
  • 遭车祸罹难的村医遇“身份”难题:镇卫生院否认劳动关系,家属上诉后二审将开庭
  • 降水较常年同期少五成,安徽四大水利工程调水超11亿方应对旱情
  • 云南德宏州盈江县发生4.5级地震,震源深度10千米