mysql - 为什么不用驼峰命名创建表名和字段?
PHP中文网
PHP中文网 2017-04-17 13:48:46
0
5
1390
PHP中文网
PHP中文网

认证0级讲师

répondre à tous(5)
Ty80

随便啊,你怎么喜欢怎么命名

http://stackoverflow.com/questions/7899200/is-there-a-naming-convention-for-mysql

迷茫

其实,这是一种规范,而不是一种规则。所以你使用驼峰来命名也是可以的,但是我们要避免用驼峰来命名。
不只是数据库,就是平常的程序也是,因为:

MYSQL 5.7 FEATURES. THIS MANUAL DESCRIBES FEATURES THAT ARE NOT INCLUDED IN EVERY EDITION OF MYSQL 5.7; SUCH FEATURES MAY NOT BE INCLUDED IN THE EDITION OF MYSQL 5.7 LICENSED TO YOU. IF YOU HAVE ANY QUESTIONS ABOUT THE FEATURES INCLUDED IN YOUR EDITION OF MYSQL 5.7, REFER TO YOUR MYSQL 5.7 LICENSE AGREEMENT OR CONTACT YOUR ORACLE SALES REPRESENTATIVE.

你能一眼看出这段文字么?

MySQL 5.7 features. This manual describes features that are not included in every edition of MySQL 5.7; such features may not be included in the edition of MySQL 5.7 licensed to you. If you have any questions about the features included in your edition of MySQL 5.7, refer to your MySQL 5.7 license agreement or contact your Oracle sales representative.

人看习惯了一种规范,看到驼峰就要花脑力去解析的好么?不只是要你看得懂,后面维护的人也要看懂。

PHPzhong

驼峰命名法的优点是可读性好,假如代码中变量名全大写或小写,或者有下划线,那么代码可读性将会很差,而且变量全大写还会与final变量冲突。

脑补一下程序中变量全大写的场景...

驼峰法: myCatName();
下划线: my_cat_name();
全小写: mycatname();
全大写: MYCATNAME();

其实驼峰法应该是最接近书面语言的规范,这样的代码阅读起来也没什么不妥之处。

个人感觉无论是驼峰命名法,还是final型的全大写,完全是一种编程习惯,由于优点比较多,所以逐渐演变成了规范。
而与数据库相关的代码不像其他程序语言中代码那么多,写SQL即使全大(小)写也不会影响可读性,全大写的表名和字段名也不会让人眼花缭乱。
而且写SQL时如果字段名是用驼峰法命名的,DBA应该会讨厌死大小写切换吧。

左手右手慢动作

比较老派的开发者都是用小写和下划线的这种方式, 很多可能是从oracle转过来的, 其实用驼峰更加好, 最重要的就是体现在开发的便利上, 与持久层框架映射更加方面, 如: mybatis, 写过mapper.xml的都知道, 如果用下划线会很烦, 出错率是极高的, 耽误你1个小时当玩一样, 好在是现在一般都是自动生成后再修改, 不过也是麻烦, 直接copy名字多easy啊

伊谢尔伦

我干了快六年的数据库开发。可以说写了六年的sql了。负责人告诉你。如果你写sql,就要遵守下划线规范。稍微有点数据敏感性的。都这么用。这也是规范。至于驼峰,你开发 java代码或者其他代码 可以用。用在写sql上不适合。好处就是可读性高,区分性强。比如起表名 temp_a 。那我就知道这是临时表a。当然你可以说我 TempA。那么复杂点。呢temp_taobao_20170101,20170101的淘宝临时表。TempTaoBao20170101。是不是有点长了?那我再复杂一点。Temp_tabao_cust_info淘宝客户信息临时表。甚至可以缩写。temp_TB_cust_info,如果驼峰呢。tempTBCustInfo。数据库表名和字段一般都带有业务含义的。谁都知道度一句没有任何标点符号的话很费劲这就是为什么要用下划线。上句话我就少了一个句号。你看看是不是很费劲?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal