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

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

有没有什么好办法可以尽可能少修改代码来实现,有没有可能在数据库上动手脚?
3005 次点击
所在节点    数据库
72 条回复
raincious
2014-12-19 13:44:07 +08:00
第一步怎么不是禁止ORM执行原生SQL?禁了这个其他都好办。

另外SELECT *也不是最佳操作吧?
tabris17
2014-12-19 13:45:53 +08:00
@raincious 代码都已经写好了,现在说这个已经来不及了
tabris17
2014-12-19 13:46:50 +08:00
现在的问题是不符合DDL规范的表,运维部门不给部署到生产服。现在的目的只要能骗过运维部让项目上线就行
88250
2014-12-19 13:50:18 +08:00
花点时间改呗....
66450146
2014-12-19 13:55:11 +08:00
:%s/_/UNDERSCORE/g
66450146
2014-12-19 13:55:35 +08:00
千万不要真的这么做……
tabris17
2014-12-19 13:57:36 +08:00
@66450146 不要怎么做?
xiaogui
2014-12-19 14:00:14 +08:00
为什么禁止下划线?那你们用什么分词?
tabris17
2014-12-19 14:01:03 +08:00
@xiaogui 驼峰法
tabris17
2014-12-19 14:01:32 +08:00
@xiaogui “为什么禁止下划线?”

因为运维部门来了个神经病
xiaogui
2014-12-19 14:06:13 +08:00
@tabris17 运维部门出规范。。。不过这说明你们这个项目不太急,要不就能直接上了,哈哈。
wesley
2014-12-19 14:06:56 +08:00
给运维不熟的数据库里只放几个假表,部署完之后,在服务器上放个phpmyadmin,把真正的表导进去
nicai000
2014-12-19 14:07:37 +08:00
规范应该先于代码啊....
tabris17
2014-12-19 14:08:36 +08:00
@wesley 默认数据库用户没有create table权限啊
tabris17
2014-12-19 14:08:54 +08:00
@xiaogui 运维才不管你项目是不是会延期呢
dorentus
2014-12-19 14:09:08 +08:00
话说,Google 的各种语言的代码规范里面,大都会提到旧代码如果不符合规范该怎么办,其中一个很重要的原则就是不要*仅仅*去为了让代码符合规范而去改。

所以在我看来这要求的确有点神经病了…

没啥特别省事的方法了,也就是修改-单元测试如此循环,该多少工作量就上报多少工作量吧。如果有什么来不及,那责任肯定不在开发这边。
xiaogui
2014-12-19 14:12:07 +08:00
@tabris17 那就把修改这个需要的真实时间 * 2.5 提交给你的上级,然后列出因为要做这个所谓的规范,然后目前其他所有项目完全停工。
tabris17
2014-12-19 14:12:53 +08:00
@xiaogui 我就是那个上级啊 T_T
cloudzhou
2014-12-19 14:14:25 +08:00
使用下划线有任何问题吗?我不理解,一直依赖我们都是使用下划线作为分隔符号。
xiaogui
2014-12-19 14:16:09 +08:00
@tabris17 你不是老板的话,就肯定还有上级。

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

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

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

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

© 2021 V2EX