在命名表时使用下划线或使用camelcase更好吗?
示例table_name
或tableName
哪个更好?是否有理由使用它,是什么?
答案 0 :(得分:12)
某些数据库引擎不区分大小写,实际上会在某些输出上将名称转换为全部小写。因此,我已经开始在单词之间使用下划线并使用全部小写。
我记得,MySQL尊重案件,所以这对您来说不是一个直接的问题。但是当我不得不将一个数据库从一个引擎移植到另一个引擎时,我就被烧了一次 - 我认为它是从MySQL到Oracle但我不会发誓 - 而我们所有的camelCase名称突然变成了一起运行的名字我还将Rob Boek列为最重要的一致性。虽然我们正在研究这个问题,但我是否可以就字段名称的一致性做出切合评论?我正在使用一个系统,我发现一个表中的字段“prodid”实际上与另一个表中的“style”完全相同,另一个系统在一个表中有“deliverdate”,而“datedelivered”在另一个。
答案 1 :(得分:3)
我读过的所有内容都表明最好的约定是坚持使用小写的数据库名称和表名。如果需要将多个单词放在一起,请用下划线分隔它们 - 避免使用表名中的连字符,否则每次引用它们时都必须反复勾选所有表名和数据库名。
此外,以下配置参数可能与您的要求相关:
mysql> show global variables like 'lower%';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| lower_case_file_system | OFF |
| lower_case_table_names | 0 |
+------------------------+-------+
2 rows in set (0.00 sec)
关于字段名称,我倾向于使用camel-case。
答案 2 :(得分:2)
我相信很多RDBMS都会忽略大小写,所以使用驼峰式命名方案可能根本行不通。
重要的是让列名和表名都是描述性的,无论你决定采用哪种挑剔的语法。如果他们描述了他们的数据,没有人会关心你是否使用了驼峰,下划线等。
答案 3 :(得分:1)
我说使用在代码中使用的任何命名约定来访问高级结构(如类)。
例如,如果将数据*封装在名为UserInfo的类中,则该表也应称为UserInfo。
*您正在封装数据,对吗?
答案 4 :(得分:1)
不是为您提供有关此的几个原因的简要反馈,而是我将提供Pinal Dave的SQL编码指南的链接。他们经过深思熟虑,解释并且似乎遵循我自己的喜好,如何命名和使用等等。
答案 5 :(得分:1)
我对此的看法是,如果世界上最好的命名惯例(对于编写它的人)感觉不自然,你应该为自己感觉自然,每次你都要阅读文档设计数据库而不是那么糟糕。
你应该做任何方便的事情,以及更好地从你的keyborad流出的东西。
根据我的经验,我在一段时间后从.net搬到了ROR,并且遇到了我总是看到人们做这些事情的方式,并强调了我的表格,但过了一段时间我忽略了这个选项,因为我的旧SQL命名方便
列的相同。
祝你好运答案 6 :(得分:1)
我的偏好是使用描述性名称并使用Pascal大小写(TableName)。
避免使用缩写,如果必须使用缩写,请将其视为单词(使用DaylightSavingsTimeInfo或DstInfo而不是DSTInfo)。
命名不是一个有正确答案的东西,所以最好的选择是选择一些东西并保持一致。最糟糕的是要有许多标准的混合物。