数据库中间表应该如何命名

1,数据库中间表一般,使用下划线连接两个表作为中间表表名(table1_table2)。比如,表前缀是tb,表 tb_article 和 tb_tag 的中间表的表名就应该是 tb_article_tag。有时候可以把表命名为 "tb_article_tag_relation" 来突出一个表是中间表。


2,在项目简单的时候,这种命名方式是没有问题的。如果复杂一点, 一个文章表 tb_post,和一个文章的类型表 tb_post_type,按照上面方式命名方式,就会出现 tb_post_post_type 这样的奇葩表名。看到有人使用双下划线“__”或者“_to_“连接两个表,比如“tb_post__post_type” 和 “tb_post_to_post_type”。两个表的前后顺序不分先后,一般可以把最常用的表放在前面。


3, 当项目变的更复杂时,人们通常会按照模块给表设置名字。比如一个系统中,portal 代表一个门户模块,那么应该这样给表命名:

tb_portal_article: 门户模块的文章表
tb_portal_category: 门户模块的分类表
tb_portal_article__category: 门户模块的文章和分类中间表
tb_protal_article_meta: 门户模块的文章元信息表,用来存储文章相关的信息


4,中间表命名的另一种思路

当一个表是 Book 表,另一个表是 Author 表,书和作者是多对多的关系。按照上面的思路,中间表就应该是“tb_book_to_author”。从某些角度看,这种命名方式隐藏了一些重要的概念。这里有种优选方案是使用“tb_publishment” 代替 “tb_book_to_author”。虽有豁然开朗的感觉,对于英语不够好的人,可能有些“过渡设计了”。逃~


参考:

https://world.hey.com/jdmo/how-to-name-your-junction-tables-3735fdc9

https://stackoverflow.com/questions/1764483/sql-join-table-naming-convention

https://stackoverflow.com/questions/1813321/what-should-i-name-a-table-that-maps-two-tables-together

修改时间 2022-02-23

真诚赞赏,手留余香
赞赏
App 开发,前端
uni-app 实现暗黑模式/夜间模式/深色模式/暗黑主题(DarkMode)的几种方法
2022-02-15
JavaScript,Node.js
Node.js 使用 Jest 做单元测试
2022-02-22
ngtwewy
随机推荐
MySQL的外键总结
CSS3 实现 Switch 开关
Node.js 18.x 开始支持内置单元测试
CSS 滚动条样式修改
Nginx 通过日志统计访问数据
Linux 中 top 命令的 Load Average 含义
macOS 生成 icns 图标
使用 MySQL 线程池对压力测试的影响
Rollup 教程
数据库中间表应该如何命名

微信联系我

夜间模式切换
回到顶部