[讨论] 数据库和SQL的专业是不是很不被重视?

楼主: littlethe (东周流浪汉)   2017-11-27 02:24:33
HI大家好,
小弟我是很喜欢研究数据库的人,
但待过几间公司后,
真的对数据库或SQL看到好多很奇怪的事,
我不知道是不是我运气太差一直遇到,
还是数据库真的很不被重视,
我遇到状况有:
1.主管只准许用left join来关连表,其他join不准用,
也不准用SP或变量或其他T-SQL的东西,只能在程式中拼接sql
2.表和字段命名,用拼音的第一个字母组成,
例如客户主档就命名为KHZD,姓名就叫XM
3.时间全部都用字符存,而且有的存的方式是"2017/11/27 01:27:30"
都用字符存之前有板友聊过,但这种存法我相信比他看到的更夸张
4.做任何动作都塞好几列log,几天之内就加了几千万列log,把硬盘给塞爆
5.一个表搞到上百个字段,大部份是没用或重复,或是可以分割
6.没设主档,主档的资料全部写在明细里,
要秀主档的资料时,
就把明细group by来找,
明细也非常非常的大
7.重要的表没有字段记录修改时间
8.重要的表没有加主键,重复的资料可以直接加上去
9.在SP里,把sql存在变量里拼接,而不是直接写sql跑,
例如
declare @sql varchar(500)
set @sql = 'select * from table_a'
exec(@sql)
而且这样写不是因为有特殊目的,是一般的sp对方也这样写,直接写sql都可以跑的
10.字段名字用a,b,c,d命名,各种资料都往里面塞,
所以a有时候是姓名,有时候是物品名,有时候是其他东西
11.拿之前的数据库改,但里面表名和字段名都不改,
有什么就塞,变成部门资料塞的是门店资料,
销售金额里存的不是销售金额,
客户编号存的是票据单号
12.要用其他数据库的表时(两个数据库在同一台服务器上),不是直接连结,
而是定时把另一个数据库的表复制到自己数据库,再去读取
如果只是一家公司数据库乱设也就算了,
但我现在已经连续看到3家数据库都乱七八糟,
我真的很好奇是不是一般公司是不重视数据库?
也很少看到有人懂数据库,
而且很多状况其实已经不是不专业问题,
是没常识了...
我自己是有做过web和app,
业界的web和app当然问题也很多,
但问题的夸张程度都没有数据库来得夸张,
数据库不是非常重要的地方吗?
怎么会出现那么多奇怪的事?
是我太大惊小怪了吗?
还是是我运气不好,
其实大部份公司的数据库还算正常,不会这样?
作者: expup (linux)   2017-11-27 02:46:00
你遇到的是常态 看开点
作者: aoksc (重出江湖)   2017-11-27 02:46:00
应该算是你刚好都遇到技术都很low的公司吧…我个人遇到的大概70~80%都算正常我是有遇过单据流水号没设pk 然后程式又写超烂会重号
楼主: littlethe (东周流浪汉)   2017-11-27 03:13:00
我的流水号是会跑出null值的
作者: ripple0129 (perry tsai)   2017-11-27 03:29:00
不是不重视,是你在台湾
作者: newversion (海纳百川)   2017-11-27 03:44:00
因为还没遇到 “每一秒钟 38 万笔交易”这种需求
作者: deforest111 (deforest)   2017-11-27 05:24:00
我觉得有几条是担心资料外泄的保护方式(脑补?
作者: evabioz (猪猪)   2017-11-27 06:42:00
古董级的技术债...
作者: drajan (EasoN)   2017-11-27 07:03:00
就是一些连数据库实务都完全不懂的门外汉
作者: PasserDin (路人丁)   2017-11-27 07:19:00
4
作者: Beramode (Xeno)   2017-11-27 07:33:00
历史共业
作者: JUNYOU01 (JJJ)   2017-11-27 07:35:00
一堆连正规化都不知道,以为加个pid字段就是 …
作者: ChungLi5566 (中坜56哥)   2017-11-27 07:52:00
传产很常见 系统能动就好
作者: keyboard56 (奇伯)   2017-11-27 07:53:00
一般状况是程式能动就好,等有遇到问题再解就好,导致后续接手的人不好维护,规划不好的地方因为年代久远也不会去动它,就这样循环下去...
作者: bill0205 (善良的小孩没人爱)   2017-11-27 07:57:00
遇到很多前辈也是这种的+1
作者: dreamnook (亚龙)   2017-11-27 08:11:00
所谓技术债
作者: knives   2017-11-27 08:12:00
因为你在台湾+1
作者: Hordor (Hordor)   2017-11-27 08:25:00
因为你只能进去这种公司
作者: iamshiao (CircleHsiao)   2017-11-27 08:26:00
这是常态,因为数据库上线后才发现设计瑕疵但资料已经进了,回头修正成本很高,很多人选择将错就错。
作者: testPtt (测试)   2017-11-27 08:31:00
用这种方式排挤高手自己位子才坐得稳
作者: hotkt247 (偲)   2017-11-27 08:35:00
是不是ㄧ路用Left join真的要看状况耶,有时需要inner join就不用再加where条件了。不能用SP也好奇怪呀@@,不过还好我们公司没有你说的那些限制
作者: ChoDino (Dino)   2017-11-27 08:38:00
从没看过你说的这些设计,加油点到知名公司吧。
作者: GoalBased (Artificail Intelligence)   2017-11-27 08:44:00
自己选技术差的公司再来怪公司技术差
作者: oneheat (等待)   2017-11-27 08:44:00
datetime会有null的问题的样子
作者: vi000246 (Vi)   2017-11-27 08:51:00
还没遇过 有几点都好扯
作者: lgzenith (巨龙)   2017-11-27 09:04:00
log这条很难说正不正确,很多时候是办公室政治问题
作者: johnny94 (32767)   2017-11-27 09:06:00
看到你这篇我真的心有戚戚焉
作者: fidelity77 (小柚)   2017-11-27 09:07:00
台湾软件很多都是能work 就好了,只注重成本低,做得快好不好维护谁管你
作者: tedmax100 (Nathan-Lu)   2017-11-27 09:13:00
台湾的管理高层,99%都没有技术底
作者: f124 (....)   2017-11-27 09:16:00
数据库又没专人在管 系统可以动不要挂掉就好了你还要要啥
作者: ccc1001 (你不是吧)   2017-11-27 09:26:00
我觉得你这是第八手了,赶快逃吧从没遇过这种
作者: cheng19 (无糖绿去冰)   2017-11-27 09:35:00
前公司有碰过不准用SP 不过我没问原因就是了
作者: earny (虾米丁)   2017-11-27 09:47:00
听朋友说:请主管开char(21) 但主管坚持开int,问题是资料长度就是21码!虽然都是数字,但Int就是无法存进去朋友的主管请他回去想办法,你知道int跟char(21)差多少吗?还拿出纸笔算给朋友看....
作者: cpper (韩立)   2017-11-27 10:05:00
如果你有Oracle数据库管理师证照又去找Oracle数据库的管理工作,就不会发生这种你遇到的事情了
作者: jj0321 (JJ与你倒数唷)   2017-11-27 10:13:00
某几楼真爱讲干话
作者: maxqq (max)   2017-11-27 10:13:00
老板通常都是,这个不重要以后再用。问题发生:你怎么没弄,我觉得这个很重要啊
作者: imlin01 (WE迷)   2017-11-27 10:28:00
我遇过一些小公司还真的没有专门管db的,主要是老板不重视,而且若是客户又不懂,我就亲眼看过某公家医院外包的系统table字段全开成varchar(max)的
作者: thinkniht (不下棋=.=)   2017-11-27 10:37:00
那正常啊 对外包而言 能跑能验收就好
作者: abc0922001 (中士abc)   2017-11-27 10:47:00
明明重视的话可以避免很多问题
作者: fish0112 (鱼)   2017-11-27 11:08:00
很多是找写java C#后端的人"兼"DB的 你觉得很专业吗?
作者: senjor (哞哞)   2017-11-27 11:25:00
你讲的问题就算不是SQL专业的人其实只要有经验就不会犯了
作者: Hordor (Hordor)   2017-11-27 11:32:00
当数据库不是需要每秒几百几千个交易的,BE 直接管就好,干嘛要DBA
作者: JUNYOU01 (JJJ)   2017-11-27 11:47:00
其实是资讯能力都不被重视
作者: TAKADO (朕没给的你不能抢)   2017-11-27 12:13:00
公司不重视吧,你的问题如果是以数据库当主力产品的公司应该就不会遇到,例如做data warehousing/mining的,至于其他很多都是产品会动就好,更别说其他惨业土法炼钢的系统。我看过1x年年资的MIS被公司凹做出来的进销存,整个系统就三个资料表,只有int跟varchar(max),令人不忍直视。
作者: vi000246 (Vi)   2017-11-27 12:13:00
2.3.5点正常人都能避免吧 也不会花多少时间会这样做的大概程式也写得很差
作者: JUNYOU01 (JJJ)   2017-11-27 12:44:00
反正现在只要接口美美的就好,后端根本不重要
作者: NUKnigel (简简单单)   2017-11-27 12:50:00
我在银行跟电信待过 都没你说的问题
楼主: littlethe (东周流浪汉)   2017-11-27 12:57:00
to earny,你朋友和那主管怎么不用decimal(21,0)?听你状况是适合这个,char很占空间
作者: t64141 (榕树)   2017-11-27 13:00:00
不良的设计见过,但没遇过这么离谱的
楼主: littlethe (东周流浪汉)   2017-11-27 13:01:00
我是走Ms sql,这么说来oracle状况会好很多?
作者: ChungLi5566 (中坜56哥)   2017-11-27 13:36:00
10年后 就换后辈抱怨前人的code都没资安以前写程式没要求这么多,小公司也不太会搞提升案
作者: abccbaandy (敏)   2017-11-27 14:00:00
@imlin01 那种用一次的专案全开varchar(max)很正常吧在那边慢慢设计才真的浪费时间关键字(外包)
作者: johnny94 (32767)   2017-11-27 14:03:00
楼上这种观念才是真的浪费时间
作者: newways   2017-11-27 14:05:00
全没遇过...
作者: senjor (哞哞)   2017-11-27 14:08:00
应该说,浪费时间要看是浪费谁的,自己方便,后面的人麻烦对很多人来讲还是会选择自己方便的方式去做 XDD
作者: oneheat (等待)   2017-11-27 14:27:00
文人相轻啊,自己的方法永远最好。老早就说还是show薪资单比薪水最快
作者: edward13 (-_-)   2017-11-27 14:42:00
竹科大厂用oracle,也请的起dba,所以不会有上述问题(?
作者: Dnight (暗夜)   2017-11-27 15:03:00
电信业没遇过这状况
作者: elements (Helianthus annuns)   2017-11-27 15:16:00
就是篇抱怨文 拍拍 但是还是要乖乖去上班喔
作者: abccbaandy (敏)   2017-11-27 15:19:00
就没有"后面的人"啊,就说一次性了不过老是做这种,真的对自己技术没什么帮助就是了...有机会还是跑吧
作者: Weky (Never mind)   2017-11-27 16:28:00
常态 请一个懂的只会数据库没价值
作者: mentha39 (薄荷)   2017-11-27 16:37:00
应该是说会投资oracle的比较可能会重视数据库
作者: Adonisy (堂本瓜一)   2017-11-27 16:53:00
现在数据库都不便宜啊...
作者: ilay (resolution)   2017-11-27 17:03:00
去错地方了,换别的地方吧
作者: Hordor (Hordor)   2017-11-27 17:05:00
投资 oracle/mssql 只是需要原厂 support 与背书而已XD
作者: newversion (海纳百川)   2017-11-27 17:24:00
我遇过连 order by 都不知道的. 用土砲法去sort @[email protected]一般人觉得只要会select insert update delete 就可以出来行走江湖了 XD
作者: johnny94 (32767)   2017-11-27 17:30:00
楼上,那种人还会跟你说这样效率比较好
作者: nova06091   2017-11-27 18:32:00
4
作者: eeyellow (TWC英勇长存人心)   2017-11-27 18:49:00
很多是前朝遗毒啦...后面接手的人要改发现工程浩大只好一起历史共业了
作者: ncwd1225 (粉丝应该放水煮)   2017-11-27 19:07:00
这太扯,比大学毕业专案还弱
作者: alian954 (PhantasyStaR)   2017-11-27 19:50:00
遇过几个工程师数据库table都不改名 各种复制 改程式改到很火
作者: neo5277 (I am an agent of chaos)   2017-11-27 20:08:00
鼎新表示
楼主: littlethe (东周流浪汉)   2017-11-27 20:25:00
我还真的和老板讲过我们的产品比大学毕业专题还烂所以各位大学生,你们要对自己有信心
作者: bobju (枯藤老树昏鸦)   2017-11-27 20:50:00
原po还在上海吗? 客户主档就命名为KHZD,姓名就叫XM 这种的一看就知是大陆的汉语拼音的命名方式
作者: mathrew (Joey)   2017-11-27 21:13:00
习惯就好 我们公司早期的数据库字段名称还是中文根本快吐血
作者: prag222 (prag)   2017-11-27 21:37:00
你有这些问题代表你离DBA还远的很咧
作者: touurtn (vv)   2017-11-27 23:35:00
很多年纪很大的码农根本不在乎这些原则 尤其驻点维护
楼主: littlethe (东周流浪汉)   2017-11-28 00:49:00
To bobju:那是我以前在越南遇到的事,开这表的人是大陆人我是在左岸没错,然后很多人说上海有多强,我看了结果不过尔尔,应该是我待的地方太烂大陆人素质的落差比台湾大很多谢谢大家的心理辅导,我现在好一点了
作者: giantwinter   2017-11-28 03:28:00
4
作者: imlin01 (WE迷)   2017-11-28 09:54:00
开varchar(max)代表那间公司完全没人懂db,完全没有专业,可悲的是user不懂,所以完全没意见
作者: earny (虾米丁)   2017-11-28 10:47:00
to littlethe其实我有跟我朋友提到,但最后主管是加开另一个字段,char(21),保留原来的int。听了之后完全被打败。朋友的主管就坚持int一定要存在...XD真的令人搞不懂,坚持int,宁愿加开另一个字段XD
作者: johnny94 (32767)   2017-11-28 12:13:00
我觉得那是拉不下脸承认自己不懂
作者: xo1100 (虾蒸河粉)   2017-11-28 15:44:00
有遇过公司开发用C#不准用linq的
作者: viper9709 (阿达)   2017-11-28 23:10:00
连续三家@@~这也太惨
楼主: littlethe (东周流浪汉)   2017-11-29 00:47:00
to earny:再加一个字段哦...这真的就没意义了很多时候真的是对方拉不下脸,就利用权势蛮干或斗争
作者: darkMood (瞬间投射)   2017-11-29 01:42:00
是的,因为会动就好,2万笔资料和2亿笔资料前者随便就好
作者: SY082022 (没有暱称)   2017-11-29 13:40:00
系统会动就好,有问题了,下面的工程师会抗,上面的老板也不懂,什么都规划的那么好,怎么有源源不绝的专案给老板报告,我现在的公司就是这样
作者: te426odin (小胖老师)   2017-11-29 16:18:00
我也遇过同事看不懂Linq所以不能用LINQ (还不是Lambai还不是(lamba表示式喔)
作者: quickey (色肥宅)   2017-11-29 16:33:00
你遇到的是垃圾场不是数据库

Links booklink

Contact Us: admin [ a t ] ucptt.com