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

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

声明:本站所有文章和图片,如无特殊说明,均为原创发布。商业转载请联系作者获得授权,非商业转载请注明出处。
真诚赞赏,手留余香
赞赏
随机推荐
WordPress 常用函数 / sanitize_user
视频剪辑软件 Shotcut 笔记
Photoshop 使用插件支持 webp 格式的文件
TypeScript 和 Koa 实践
WordPress 自定义 JWT 授权和验证
Git 放弃本地修改,强制和之前的某次提交同步
JavaScript 代码混淆加密工具 javascript-obfuscator
数据库中间表应该如何命名