数据库字段名下划线法还是驼峰法好一些?

2020-03-05 19:25:06 +08:00
 jry

之前一直使用 thinkphp,没有 Entity 这回事,最近研究了 spring-boot,发现 Entity 的把字段映射定义成驼峰法通过注解来对应具体的下划线字段名称: 1、这样是否会有性能损失,要不要直接数据库字段改成驼峰法? 2、之前的系统是 php 的,想直接把后端改成 java,但是兼容原来的数据库,php 版本的后端返回比如文章信息时是直接 json(字段下划线法),那 java-jpa 有办法再输出 json 时再把驼峰法转换成下划线吗?还是直接方案 1,直接统一全局驼峰法?

12358 次点击
所在节点    Java
39 条回复
optional
2020-03-06 10:21:06 +08:00
pg 大小写不敏感,所以我选择不给自己找麻烦。
lcf0030
2020-03-06 10:26:49 +08:00
_
ccl945
2020-03-06 10:27:34 +08:00
@lc7029 原来那个表字段用中文的是你
SheepM
2020-03-06 10:28:59 +08:00
并不建议用驼峰式,因为 oracle 数据库和 mysql 数据库有一些大小写方面的差异,mysql 大小写敏感,但 oracle 的命名统一都是大写,有一天如果需要将 mysql 数据上的表和存储过程切换到 oracle,用驼峰式会直接原地爆炸。驼峰式一般用于在代码中,但不适用于关系型数据库代码
edk24
2020-03-06 11:50:11 +08:00
推荐用中文字段 啊哈哈哈哈
hantsy
2020-03-06 14:25:26 +08:00
@csulyb 我以前一次经历,MySQL 在 Windows 下默认大小不敏感(可以修改配置),到部署到 Linux 就有问题了(字段,表名大小敏感),很多人程序里面 SQL 根本没在乎大小写。现在新版本怎么处理的,就不知道了。

有时写一些 POC,省事一点我有时也不在乎这些规则,数据库可能也和程序一样用 Camel。最近用了下 PostgreSQL (跑在 Docker 里面), 用 Helidon DBClient 访问结果是,如果用 CamelCase 的话,DbRow 读出来的字段全部变成小写。
yinzhili
2020-03-06 14:28:19 +08:00
数据库表名、视图名、存储过程名、函数名、字段名都建议用下划线法
wozhizui
2020-03-06 14:33:52 +08:00
@hantsy 行家啊,学习了。
jzmws
2020-03-06 16:14:28 +08:00
推荐用下划线, 因为数据库可以设置不区分大小写 , 我就吃过这个亏 , 之前一个不区分大小写的,然后再 java 用小写,生产数据库是大写,区分大小写 ,然后我就 gg 了
lucifer1108
2020-03-06 16:16:36 +08:00
@mesbbs 那还有可读性?
Vegetable
2020-03-06 16:20:55 +08:00
我这种数据库字段用中文名的是少数吗?如果我认真对待一个项目,数据库字段名一定是中文。
jin7
2020-03-06 16:31:01 +08:00
中文最省事了 不费脑子 不存在大小写问题
jry
2020-03-06 16:41:35 +08:00
@aydd2004 ENTITY 没法下划线
jingege
2020-03-06 16:45:13 +08:00
必须下划线呀,很多时候 MySQL 并不区分大小写吧
qile1
2020-03-07 00:03:27 +08:00
@yinzhili 最近听说 oracle 的包执行的时候要把.换成_,比如执行 packs.fac ()要写成 packs_fac ()
yinzhili
2020-03-07 09:20:58 +08:00
@qile1 新的版本改了吗? 11g 还是用.来分割
ZoR
2020-03-07 16:11:31 +08:00
推荐下划线,以后遇到换数据库 大小写敏感 兼容性问题 就等着哭吧
james122333
2020-03-08 15:48:47 +08:00
能的话我几乎所有东西都不想要驼峰 很容易误打的方式
james122333
2020-03-08 15:57:42 +08:00
还有都大写也是很奇葩的
对于大小和小写当然是小写看起来比较不吃力 也比较美观

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/650184

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX