2010-06-23 54 views
12

在命名表时使用下划线还是使用camelcase更好?命名表的最佳方式

例子table_nametableName哪一个更好?有没有理由使用,它是什么?

+0

简短的回答:这取决于你,选择你喜欢的任何东西。另见:http://stackoverflow.com/questions/1847235/database-table-and-column-naming-conventions – Shog9 2010-06-23 16:13:05

+0

啊辉煌的家伙...非常感谢链接..很感激。 – bharath 2010-06-23 16:17:10

+0

大多数SQL实现都是与个案无关的,所以'STUFF','stuff'和'StUfF'指向同一个表。 – 2010-06-23 16:56:23

回答

1

我说你可以在代码中使用任何命名约定,访问它的高级结构(如类)。

例如,如果将数据*封装在名为UserInfo的类中,则该表也应该称为UserInfo。

*您正在封装数据,对不对?

+0

啊,这是一个很好的信息....非常感谢。 – bharath 2010-06-23 16:18:14

1

而不是向您提供一个简短的反馈,其中有几个原因,我将提供一个链接到Pinal Dave的SQL编码指南。他们已经深思熟虑,解释,似乎遵循事情应该如何命名,并且用我自己的喜好等

Enjoy!

+0

非常感谢链接brian ... – bharath 2010-06-23 16:18:36

+0

具体到SQL Server,但仍然是一个很好的参考。 – 2010-06-23 17:01:13

+1

不能说,因为我同意所有它虽然。您不应该命名以sp开头的存储过程,因为SQL Server将首先查找系统过程,因此每次调用都会失去一点性能。 – HLGEM 2010-06-23 18:46:55

1

我对这个问题的看法是,你应该做的一切感到自然的你,如果世界上最好的命名约定(对于编写它的人来说)不会感觉自然,并且每次设计数据库时都必须阅读文档,而不是那么糟糕。

你应该为你做任何方便的事情,并且更好地从你的keyborad中流出。

根据我的经验,我从.net开始转移到ROR,并以我经常看到人们做这些事情并强调我的表格的方式被捕获,但过了一段时间,我忽略了这个选项以用于我熟悉的SQL命名方便。

对于列相同。

好运

+0

不,团队应该就标准达成一致,每个人都应该使用它(如果他不遵守标准,代码审查应该会剥离开发者)。没有牛仔编码,每个人都使用他们觉得最舒服的标准。并且没有使用标准表格作为我工作的最后一个地方,因为我觉得对那个人很舒服,而不是这个组织要求废话的人之一 – HLGEM 2010-06-23 18:42:15

+0

@HLGEM在一个团队中工作是一个不同的歌剧。 当在一个团队工作或管理一个团队时,肯定应该由经理设定一个约定。 – KensoDev 2010-06-23 20:22:45

+0

@HLGEM - 我将不得不同意KensoDev。您的意见,无论是否有意,都觉得您希望将开发人员简化为编码标准。标准并不是一件坏事,但我的经验是,它们的目的是为了与去年的战斗作斗争,而不是今年的战斗。当然,我们可以从中获得一些东西并继续前进。但是,当游戏规则发生变化(新语言,要解决的新问题,新编码技术)时,为了强制执行人们的编码标准,使我对编码标准的想法感到非常失望。你经常更新你的标准吗? – 2010-06-24 13:48:54

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) 

关于字段名,我倾向于使用骆驼情况。

+0

“字段名称”是指列/行吗? – 2016-07-05 05:16:23

1

我的首选是使用描述性名称并使用Pascal套管(TableName)。

避免使用缩写词,如果必须使用缩写词,请将其当作单词(使用DaylightSavingsTimeInfo或DstInfo而不是DSTInfo)。

命名不是一个单一的正确答案,所以最好的办法是挑选一些并保持一致。最糟糕的是有许多标准的混杂。

12

某些数据库引擎不区分大小写,实际上会在某些输出上将名称转换为全部小写。正因为如此,我已经开始在单词之间使用下划线并使用全部小写字母。

MySQL尊重案例,因为我记得所以这不是你的直接问题。但是当我不得不将一个数据库从一个引擎移植到另一个引擎时,我被烧了一次 - 我认为这是从MySQL到Oracle,但我不会发誓 - 我们所有的camelCase名称突然变成了运行在一起的名称。

我还会在Rob Boek的第二个重要的事情上保持一致。虽然我们谈到这个问题,但是我能否就字段名称的一致性做出切实的评论?我现在正在使用一个系统,我发现一个表中的“prodid”字段实际上与另一个表中的“style”相同,另一个系统在一个表中具有“deliverdate”,而在另一个表中“datedelivered”另一个。

2

我相信许多RDBMS忽略大小写,所以使用骆驼大小写命名方案可能根本无法工作。

重要的是要让列名称和表格名称具有描述性,无论您选择哪种挑剔的语法。如果他们描述他们的数据,没有人会关心你是否使用骆驼案,下划线等。

+1

不同意,我正在使用遗留数据库,人们在最初的设计中并不在意使用标准,这使得它很难保持。挑选标准并一致使用。 – HLGEM 2010-06-23 18:38:04

+0

HLGEM - 你能说清楚你的标准是什么意思吗?你的意思是在语法方面(使用camelcase,使用下划线,总是有大写的SQL)或内容(有列描述他们的数据,格式化数据到HH:MM:SS,格式化)?我认为强制开发者的语法是不利的(数据库不会)(IME程序员对此太过分肛门;它只会产生宗教争斗)。但就内容而言,我认为可以在标准/指南中进行讨论。 – 2010-06-24 13:41:48

+0

我也会补充一点,HLGEM有一点 - 一些必要的一致性。例如,包含共享ID的列应该在特定模式的数据库表中具有相同的名称。我不是在这里提倡免费。 – 2010-06-24 17:18:23