Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 数据库、表和列的命名约定_Sql_Database_Symfony_Naming_Convention - Fatal编程技术网

Sql 数据库、表和列的命名约定

Sql 数据库、表和列的命名约定,sql,database,symfony,naming,convention,Sql,Database,Symfony,Naming,Convention,虽然这个话题已经被触动了很多次,我还是再次写下它来分享我的经历。在开始这个项目之前,我正在寻找数据库的命名约定,并阅读了我在这个网站上找到的建议。如果你愿意,我用的是传统的帕斯卡或骆驼 MyTable MyColumnName 首先,事实证明该项目是不可移植的,因为数据库在目录中写入的数据的名称来自表的名称,并且各种操作系统对文件和目录名称中的小写和大写字母有不同的解释。 我将约定更改为小写下划线命名约定 my_table my_column_name 问题似乎已经解决了,但还没有完全解决。

虽然这个话题已经被触动了很多次,我还是再次写下它来分享我的经历。在开始这个项目之前,我正在寻找数据库的命名约定,并阅读了我在这个网站上找到的建议。如果你愿意,我用的是传统的帕斯卡或骆驼

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

my_table
my_column_name
问题似乎已经解决了,但还没有完全解决。 还有一个问题:关键词。 下面是我在认识到项目中存在的问题时遇到的一个讨论。简言之,框架不引用关键字,因为这样会降低数据库性能。 所以另一个惯例改变了

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

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

Pascal和Camel是不同的。Pascal有一个大写的初始字符,Camel有一个小写的初始字符。我不认为引用标识符会降低性能,你有证据吗?显然,这取决于引擎的实现我不关心数据库性能的讨论,但这确实会影响我的性能。我不确定其他人(尽管我认为他们是相似的)但使用Doctrine,您可以将字段名设置为
Date
,然后将DB的实际列名设置为您想要的任何名称,如
item\u Date
,以避免任何关键字问题。他们不是同一个名字(很明显),但这确实意味着你不必经历奇怪的习俗。当然。很久以前,我写了自己的框架,我可以做任何我喜欢的事情,但我现在想要的是快速部署应用程序。