多对多关系表命名

时间:2014-01-20 16:24:08

标签: mysql database-design naming

我想知道是否有关于MySQL表命名的某种标准?我目前有两个表,一个叫做Users,另一个叫做Trainings。因为我需要他们有多对多的关系,所以需要创建一个互连这两者的表,但我无法想到除用户/培训之外的正确命名。

1 个答案:

答案 0 :(得分:1)

没有官方最佳做法,但有一些经过良好测试的启发式算法...... 如果我的ORM或某些东西没有强制执行它自己的标准,我喜欢使用下划线分隔符号,但总是按字母顺序排列。此外,我总是使用单数作为我的类和表名,以避免puralization futz。根据它的本性,你不能分辨出其他东西是什么,所以字母规则只会让它变得更容易。

user
address
zebra
address_user
user_zebra

一套简单的规则,没有混淆,也没有关于如何/如何命名的事情,并且易于解释。

更进一步,我建议除非一个非常具体的原因迫使它反对:

  1. 始终对表名和列名使用小写字母(这样您就不会惊讶于从区分大小写的文件系统移动到不区分大小写的文件系统 - 不必记住驼峰的情况也更容易)
  2. 命名表的主键(不是复合键时)id
  3. 以tablename_id格式命名外键(如user_id,zebra_id)
  4. 请记住,只是指南,而不是教条。

    这些指导方针将使您的生活和未来dba的生活更美好。