每次新项目启动时,我都在考虑在数据库中命名表和列的约定。您的推荐是哪种情况?为什么?
案例1. column_name
案例2. ColumnName
案例3. Column_Name
案例4. columnName
答案 0 :(得分:22)
您应该使用案例#1,因为它没有区分大小写的问题。此外,骆驼案件很糟糕。
columnID
columnId
columnIDAlternative
columnIdAlternative
RASCScore
RascScore
column_id
column_id_alternative
rasc_score
此外,单词之间的空格在视觉上比将所有内容组合在一起更令人愉快。绝对值得点击下划线所感受到的痛苦。下划线模拟空格,复合名词和短语在正常的书面语言中有空格。 TheOnlyPeopleToTypeLikeThisMayHaveBeenTheRomans。
答案 1 :(得分:7)
无论你决定选择什么,坚持同样是最重要的,这是一致的。
我更喜欢#2,因为这是非常可读的,并且如前所述,下划线很难看并且很难打字。 #4是第二好的。 #3我最不喜欢,大写和下划线都是矫枉过正。
答案 2 :(得分:5)
我同意#2有两个原因:
巧合的是,我相信Java开发人员倾向于在他们的课程中使用#4。如果客户端软件是Java,我会将我的答案改为#4。
答案 3 :(得分:3)
我投票赞成“你在上一个项目中使用的那个”在这种情况下的一致性可能比任何特定的意识形态更重要......
答案 4 :(得分:2)
我喜欢案例2,价值观似乎对我更好。无论你选择什么,都要保持一致!
答案 5 :(得分:2)
我使用案例2(ColumnName) - 因为下划线很难输入。
下划线在索引名称,触发器或其他不经常输入的对象中都可以。我将它们从表格,列,视图,存储过程名称中删除,因为这些是经常使用的名称,如果经常使用它,那么达到该下划线可能会减慢速度。
答案 6 :(得分:1)
我将我的表命名与命名我要创建的对象命名完全相同。这适用于现代ORM(对象关系映射器),因为它们通常可以根据您的数据库结构(或其他方式)为您创建对象模型。接受的答案似乎贬低了“键入下划线的痛苦”,但我认真对待。遭受RSI,特别是在我的粉红色,我用来按住Shift和Ctrl键,我尽我所能,以避免不必要的下划线。当然,这个问题的一个很好的答案是将CapsLock键重新映射到Shift键或下划线键。但无论如何,我将这个答案添加到一个老问题中,因为没有人提到使用你的ORM。由于我在.NET中进行大多数编程,因此我的大多数属性都是驼峰式的,所以我也将我的db列命名为camel case。我绝对没有问题骆驼套管缩写。所以我做的事情如下:
PersonDao.GetIdByName(“Hello world”)。
骆驼外壳肯定会让长名称变得烦人......但是,我避免使用长名字。通常这意味着我错误地组织了事情。如果我确定我没有,那么......在这些情况下,长码在我的代码中是如此罕见,而且情况如此独特,无论如何它都不会减慢我的速度。
我认为命名绝对是至关重要的。就像有些人有XML迷信一样,其他人有数据库迷恋。就个人而言,我喜欢使用我的ORM完全忽略我的数据库(或尽可能地)。为了方便起见,我就像在代码中命名属性一样命名我的列。所以,最终,除了讨厌的讨厌,我使用我的代码所存在的语言存在的任何约定。
答案 7 :(得分:0)
我只是喜欢camelCasing(4)很好的可读性,没有下划线