在过去的许多项目中,我观察到人们倾向于将数据库列名保留为用“_”分隔的两三个单词,例如:first_name。然而,同一列映射到 Java bean 的变量:firstName。
我不知道为什么人们不保留像 firstName 这样的数据库字段名称,而是倾向于在两者之间使用 _ 。即使我们使用 iBatis,定义 resultmap 映射也是一项额外的工作。
问候, 贾坦
许多数据库都有不区分大小写的列名和表名(这在过去甚至比现在还要大),所以如果你输入camelCasedColumnName
了 ,你最终得到的是CAMELCASEDCOLUMNNAME
. 在这些数据库中,在标识符中使用下划线更具可读性,如果您希望能够以最少的麻烦更改后端数据库,即使在区分大小写的数据库中也是一种很好的做法。
在代码方面,camelCase 是 Java 中字段标识符的约定,但在许多其他语言中,下划线是变量和方法名称的约定。还有一些工具可以在 CamelCasedNames、underscored_names 或其他格式之间进行转换,而无需开发人员在处理数据库时进行任何额外的工作。(例如,Ruby 的 ActiveRecord 知道NameLikeThis
类的 a 映射到name_like_this
数据库中的表的 a。)
我通常将 firstName 用于数据库字段,它工作正常!但是,使用 first_name 可能有一些很好的理由。可能,dbms、团队或公司的数据库可能有 first_name 表示法,或者有人可能喜欢这种表示法!
请记住,数据库在几个不同的应用程序之间共享是很常见的。这些应用程序可能是用 Java 以外的语言编写的(如果你能想象这样的话)。即使数据库是为新应用程序构建的,将来也可能有其他应用程序与之交互。
因此,根据数据库模式的规范(通常意味着不区分大小写和下划线)来命名数据库而不是试图符合前端语言的约定是有意义的。