post //文章表
post_type //文章分类
picture_type //相册分类
已有数据库出现了很多奇葩的表名,如下:
post_post_type //文章和文章分类关联表
picture_picture_type //相册和相册分类关联表
user_user_group //用户和用户组关联表
这些中间关联表如何优雅的命名呢?
还是说我这个type分类表设计的有问题,
post //文章表
post_type //文章分类
picture_type //相册分类
已有数据库出现了很多奇葩的表名,如下:
post_post_type //文章和文章分类关联表
picture_picture_type //相册和相册分类关联表
user_user_group //用户和用户组关联表
这些中间关联表如何优雅的命名呢?
还是说我这个type分类表设计的有问题,
同一个类型的表最好拥有统一的表前缀,不同的名字,关联的表名就是 前缀_主表_链接表 这样比较容易易读一点
比如文章表
post_list
文章分类表
post_category
那么他们的连接表名就是
post_list_category
这样可读性更高,命名的时候英文单词最好准确一些 到时候也可以避免不必要的麻烦
我个人的解决方案。
关联表会有如下类型:
_mto_
,例如 uploader_mto_movie
_mtm_
,例如 user_mtm_role
有的规范使用 类似 rel
的前缀或后缀,但是这样的缺点是:
rel_a_b_c
,则不知道是 a_b -> c
还是 a -> bc
(不使用中缀的都存在这个问题)这对代码生成等自动化编程不利。
不过,使用 mto
, mtm
中缀也有缺点:会让其他人在了解此约定前,不能一眼理解含义。
因此可以换成 _to_
中缀,并且允许用复数命名。当然我个人还是不推荐用复数命名。
还有一种方式是通过大小写同下划线区分两个表,但是这与全部小写的要求冲突,不建议。
4 回答1.3k 阅读✓ 已解决
8 回答1.2k 阅读
2 回答1.3k 阅读✓ 已解决
3 回答1k 阅读✓ 已解决
1 回答987 阅读✓ 已解决
2 回答849 阅读✓ 已解决
2 回答1.7k 阅读
我一般是以一个结尾单词
merge
来标识关联表的;比如商品表:
goods
商品类型表名:
goods_type
那么商品和类型关联表名可以表示为:
goods_type_merge
设计的时候,规范起来,只要开发人员看到这个表是个什么表,目的就达到了。