公司 DDL 规范禁止表名和字段名使用下划线,现有项目必须重构

2014-12-19 13:40:56 +08:00
 tabris17
MySQL数据库。
PHP项目。
项目有用ORM也有执行原生SQL。数据库访问都是基于Zend Db组件。
我尝试写了个SQLParser来替换SQL语句中的表名和字段名,但是因为SELECT * 的关系,返回数据集的字段名没法替换掉。

有没有什么好办法可以尽可能少修改代码来实现,有没有可能在数据库上动手脚?
3107 次点击
所在节点    数据库
72 条回复
shadyxu
2014-12-19 15:21:51 +08:00
LZ你就想想,你自己都这么排斥,你的组员,也就是最后真正去改的人,会是什么想法。如果这种没来由且滞后还又跨部门的要求你都直接妥协,你的组员会怎么想你。
shadyxu
2014-12-19 15:29:28 +08:00
@tabris17 不仅仅是这次上线的问题,你们以前的项目也全部要改吗,新项目以后也要这样吗。既然你管不动跨部门的运维,那他们跨部门给你们提的要求你怎么就直接接受了。这种你觉得不对的东西,还要折腾耗费工作量,又会引起组员反感,这都不去据理力争,别人还能指望你什么。
tabris17
2014-12-19 15:35:38 +08:00
@shadyxu
规范和项目在我来公司之前就都存在了,是当时负责的开发没有留意规范,而项目一直没上线,所以直到最近要上线前才发现不符合规范的问题(当然这个规范有多傻逼就不提了),所以我没找开发算账已经不错了,开发还反感个毛啊。
aru
2014-12-19 16:13:30 +08:00
老老实实改代码,或者去掉这个规划
ibugeek
2014-12-19 16:18:07 +08:00
@tabris17 作为开发人员,这种折腾耗费工作量的,还是擦前任的屁股,必然不爽啊,大不了不干了....
只能是祝福了。
loryyang
2014-12-19 16:20:21 +08:00
这,你作为技术总负责人居然没有怼回去?难道你们那边rd还不如运维强势?

要是我我就给他排期排个三个月,给他慢慢改。上头要是对我有意见,老子拍拍屁股走人,哪儿不是一样干,干这样傻逼的事情,还不如不干

你就这样想,你这么干对得起手下的弟兄吗?
dingyaguang117
2014-12-19 16:22:04 +08:00
表明字段名有下划线 有啥缺点呢
loveyu
2014-12-19 16:33:19 +08:00
我咋觉得下划线明显比那个驼峰好区分
sunhk25
2014-12-19 16:35:17 +08:00
用的cakephp,官方文档,例子里面的表名,字段名全都是下划线来标识的。。。
tabris17
2014-12-19 16:36:09 +08:00
@dingyaguang117 完全没有,反而是驼峰法会有问题,在不同系统下,mysql表名大小写敏感是不一样的。
akira
2014-12-19 16:36:11 +08:00
按照你说的话,规范应该是一直存在的,老老实实的改代码吧,别取巧。
akfish
2014-12-19 16:40:29 +08:00
这种事情运维也来指手画脚?真是醉了。
kaneg
2014-12-19 16:47:19 +08:00
这就是软件开发中的蝴蝶效应。
edwardtoday
2014-12-19 16:47:46 +08:00
这个月刚把原先驼峰命名的MySQL表名改成全小写用下划线分词。
开发环境MySQL是跑在linux上的,一直没问题。
直到在某台Windows上装了MySQL,发现默认不区分大小写表名,真是悲伤。

我不知道你们是否会遇到跨平台的问题,但是就表名而言,你们新来的话事人是不是还要把 information_schema 改成 InformationSchema 呢?问问MySQL同不同意??

规范不对的时候改规范。规范不合理的时候,争取改合理了。忍气吞声埋头做,出问题谁负责?延期谁负责?责任都你团队负,权利都在其他部门,这不搞笑呢么。玩不转的。
tabris17
2014-12-19 16:53:43 +08:00
@edwardtoday 本地开发环境是windows的,不过以后项目我会让他们都在vagrant虚拟机上开发。
定这个规范绝对是人绝对是脑子进大便了,没办法
evlos
2014-12-19 17:14:54 +08:00
卧槽 表名还不让用下划线了 哪个逗比定的规范。。。
cloudzhou
2014-12-19 17:37:04 +08:00
@tabris17 让运维发出邮件,详细列出这样做的目的、好处。并且表示,出于xxx的原因,如果没能说服这样修改的合理性,将不做这样的更改。
aa88kk
2014-12-19 18:08:45 +08:00
你们公司运维是个大5B, mysql默认的命名方式就是小写加下划线,查询是不区分大小写的。所以大小写只会在显示上有区别。你们公司也奇葩,运维能管这个? 换个公司吧。
huigeer
2014-12-19 18:09:28 +08:00
别人吃大便就让他吃, 用不着赔他吃,
zzColin
2014-12-19 18:29:05 +08:00
显然楼主措辞上有点问题,以致于几乎所有回复都当成是运维故意找茬了,但不管规定再怎么脑残,楼主显然已经在 43 楼承认了是自己和手下开发人员的疏忽

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

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

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

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

© 2021 V2EX