【问题标题】:Database, Table and Column Naming Conventions again再次使用数据库、表和列命名约定
【发布时间】:2015-02-10 09:27:07
【问题描述】:

虽然这个话题已经被多次触及,但我再次写下它以分享我的经验。在开始这个项目之前,我一直在寻找数据库的命名约定,并阅读了我在这个网站上找到的建议。如果您愿意,我使用约定 Pascal 或 Camel。

MyTable
MyColumnName

首先,事实证明该项目是不可移植的,因为数据库将数据写入目录中的名称来自表的名称,并且各种操作系统对文件名中的小写和大写字母有不同的解释,并且目录。 我将约定更改为小写下划线命名约定。

my_table
my_column_name

问题似乎解决了,但还没有完全解决。 还有一个问题:关键字。 这是一个excerpt 讨论,当我认识到我的项目中的问题时,我遇到了这个问题。简而言之,框架不引用关键字,因为它会降低数据库性能。 所以另一个约定改变了。

_my_table
_my_column_name
_reserved_keyword

我的问题是:有多少命名约定的更改在等着我? 我希望这篇文章能帮助其他人克服我不得不面对的问题。

【问题讨论】:

  • 帕斯卡和骆驼是不同的。 Pascal 有一个大写首字母,Camel 有一个小写首字母。 msdn.microsoft.com/en-us/library/x2dbyw72%28v=vs.71%29.aspx
  • 我不认为引用标识符会降低性能,您有任何证据吗?显然这取决于引擎的实现
  • 我不关心数据库性能的讨论,但这确实影响了我的性能。
  • 我不确定其他人(尽管我认为它们相似)但是使用 Doctrine 您可以将字段名称设置为Date,然后将数据库的实际列名称设置为您想要的任何内容喜欢item_date 以避免任何关键字问题。它们的名称不同(显然),但这确实意味着您不必开始经历奇怪的约定。
  • 当然。很久以前我写了自己的框架,我可以做任何我想做的事,但是我现在想要的是快速部署应用程序的方法。

标签: sql database symfony naming convention


【解决方案1】:

命名约定不是必须的,它只是一个建议。您应该明智地指定表、列等名称,考虑它们,因为没有命名约定。 不要使用保留字、非字母字符等,你的问题就消失了。

【讨论】:

    猜你喜欢
    • 2014-11-13
    • 1970-01-01
    • 2010-09-05
    • 2011-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多