※ 本文為 terievv 轉寄自 ptt.cc 更新時間: 2017-12-03 20:34:21
看板 Soft_Job
作者 標題 [討論] 資料庫和SQL的專業是不是很不被重視?
時間 Mon Nov 27 02:24:33 2017
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當然問題也很多,
但問題的誇張程度都沒有資料庫來得誇張,
資料庫不是非常重要的地方嗎?
怎麼會出現那麼多奇怪的事?
是我太大驚小怪了嗎?
還是是我運氣不好,
其實大部份公司的資料庫還算正常,不會這樣?
--
和會你走到最後的人,
不是你最愛的人,
也不是最愛你的人,
而是和你最有緣的人
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 116.232.251.210
※ 文章代碼(AID): #1Q6mRgE6 (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1511720682.A.386.html
※ 編輯: littlethe (116.232.251.210), 11/27/2017 02:35:34
※ 編輯: littlethe (116.232.251.210), 11/27/2017 02:41:00
--
※ 編輯: littlethe (116.232.251.210), 11/27/2017 02:41:00
推 : 你遇到的是常態 看開點1F 11/27 02:46
推 : 應該算是你剛好都遇到技術都很low的公司吧…2F 11/27 02:46
→ : 我個人遇到的大概70~80%都算正常
→ : 我是有遇過單據流水號沒設pk 然後程式又寫超爛會重號
→ : 我個人遇到的大概70~80%都算正常
→ : 我是有遇過單據流水號沒設pk 然後程式又寫超爛會重號
→ : 我的流水號是會跑出null值的5F 11/27 03:13
推 : 不是不重視,是你在台灣6F 11/27 03:29
→ : 因為還沒遇到 「每一秒鐘 38 萬筆交易」這種需求7F 11/27 03:44
推 : 我覺得有幾條是擔心資料外洩的保護方式(腦補?8F 11/27 05:24
推 : 古董級的技術債...9F 11/27 06:42
推 : 就是一些連資料庫實務都完全不懂的門外漢10F 11/27 07:03
推 : 411F 11/27 07:19
推 : 歷史共業12F 11/27 07:33
推 : 一堆連正規化都不知道,以為加個pid欄位就是 …13F 11/27 07:35
推 : 傳產很常見 系統能動就好14F 11/27 07:52
→ : 一般狀況是程式能動就好,等有遇到問題再解就好,導致15F 11/27 07:53
→ : 後續接手的人不好維護,規劃不好的地方因爲年代久遠也
→ : 不會去動它,就這樣循環下去...
→ : 後續接手的人不好維護,規劃不好的地方因爲年代久遠也
→ : 不會去動它,就這樣循環下去...
推 : 遇到很多前輩也是這種的+118F 11/27 07:57
→ : 所謂技術債19F 11/27 08:11
推 : 因為你在台灣+120F 11/27 08:12
推 : 因為你只能進去這種公司21F 11/27 08:25
推 : 這是常態,因為資料庫上線後才發現設計瑕疵但資料已經進22F 11/27 08:26
→ : 了,回頭修正成本很高,很多人選擇將錯就錯。
→ : 了,回頭修正成本很高,很多人選擇將錯就錯。
推 : 用這種方式排擠高手自己位子才坐得穩24F 11/27 08:31
推 : 是不是ㄧ路用Left join真的要看狀況耶,有時需要inner j25F 11/27 08:35
→ : oin就不用再加where條件了。不能用SP也好奇怪呀@@,不過
→ : 還好我們公司沒有你說的那些限制
→ : oin就不用再加where條件了。不能用SP也好奇怪呀@@,不過
→ : 還好我們公司沒有你說的那些限制
→ : 從沒看過你說的這些設計,加油點到知名公司吧。28F 11/27 08:38
推 : 自己選技術差的公司再來怪公司技術差29F 11/27 08:44
推 : datetime會有null的問題的樣子30F 11/27 08:44
推 : 還沒遇過 有幾點都好扯31F 11/27 08:51
推 : log這條很難說正不正確,很多時候是辦公室政治問題32F 11/27 09:04
推 : 看到你這篇我真的心有戚戚焉33F 11/27 09:06
→ : 臺灣軟體很多都是能work 就好了,只注重成本低,做得34F 11/27 09:07
→ : 快
→ : 好不好維護誰管你
→ : 快
→ : 好不好維護誰管你
→ : 台灣的管理高層,99%都沒有技術底37F 11/27 09:13
推 : 資料庫又沒專人在管 系統可以動不要掛掉就好了你還要要啥38F 11/27 09:16
推 : 我覺得你這是第八手了,趕快逃吧39F 11/27 09:26
→ : 從沒遇過這種
→ : 從沒遇過這種
推 : 前公司有碰過不准用SP 不過我沒問原因就是了41F 11/27 09:35
推 : 聽朋友說:請主管開char(21) 但主管堅持開int,問題是資料42F 11/27 09:47
→ : 長度就是21碼!雖然都是數字,但Int就是無法存進去
→ : 朋友的主管請他回去想辦法,你知道int跟char(21)差多少嗎?
→ : 還拿出紙筆算給朋友看....
→ : 長度就是21碼!雖然都是數字,但Int就是無法存進去
→ : 朋友的主管請他回去想辦法,你知道int跟char(21)差多少嗎?
→ : 還拿出紙筆算給朋友看....
推 : 如果你有Oracle資料庫管理師證照又去找Oracle資料庫的管理46F 11/27 10:05
→ : 工作,就不會發生這種你遇到的事情了
→ : 工作,就不會發生這種你遇到的事情了
噓 : 某幾樓真愛講幹話48F 11/27 10:13
→ : 老闆通常都是,這個不重要以後再用。49F 11/27 10:13
→ : 問題發生:你怎麼沒弄,我覺得這個很重要啊
→ : 問題發生:你怎麼沒弄,我覺得這個很重要啊
推 : 我遇過一些小公司還真的沒有專門管db的,主要是老闆不重51F 11/27 10:28
→ : 視,而且若是客戶又不懂,我就親眼看過某公家醫院外包的
→ : 系統table欄位全開成varchar(max)的
→ : 視,而且若是客戶又不懂,我就親眼看過某公家醫院外包的
→ : 系統table欄位全開成varchar(max)的
推 : 那正常啊 對外包而言 能跑能驗收就好54F 11/27 10:37
推 : 明明重視的話可以避免很多問題55F 11/27 10:47
→ : 很多是找寫java C#後端的人"兼"DB的 你覺得很專業嗎?56F 11/27 11:08
推 : 你講的問題就算不是SQL專業的人其實只要有經驗就不會犯了57F 11/27 11:25
推 : 當資料庫不是需要每秒幾百幾千個交易的,BE 直接管就好,58F 11/27 11:32
→ : 幹嘛要DBA
→ : 幹嘛要DBA
推 : 其實是資訊能力都不被重視60F 11/27 11:47
推 : 公司不重視吧,你的問題如果是以資料庫當主力產品的公司61F 11/27 12:13
→ : 應該就不會遇到,例如做data warehousing/mining的,至於
→ : 其他很多都是產品會動就好,更別說其他慘業土法煉鋼的系
→ : 統。我看過1x年年資的MIS被公司凹做出來的進銷存,整個系
→ : 統就三個資料表,只有int跟varchar(max),令人不忍直視。
→ : 應該就不會遇到,例如做data warehousing/mining的,至於
→ : 其他很多都是產品會動就好,更別說其他慘業土法煉鋼的系
→ : 統。我看過1x年年資的MIS被公司凹做出來的進銷存,整個系
→ : 統就三個資料表,只有int跟varchar(max),令人不忍直視。
推 : 2.3.5點正常人都能避免吧 也不會花多少時間66F 11/27 12:13
→ : 會這樣做的大概程式也寫得很差
→ : 會這樣做的大概程式也寫得很差
推 : 反正現在只要介面美美的就好,後端根本不重要68F 11/27 12:44
推 : 我在銀行跟電信待過 都沒你說的問題69F 11/27 12:50
→ : to earny,你朋友和那主管怎麼不用decimal(21,0)?聽你70F 11/27 12:57
→ : 狀況是適合這個,char很佔空間
→ : 狀況是適合這個,char很佔空間
推 : 不良的設計見過,但沒遇過這麼離譜的72F 11/27 13:00
→ : 我是走Ms sql,這麼說來oracle狀況會好很多?73F 11/27 13:01
推 : 10年後 就換後輩抱怨前人的code都沒資安74F 11/27 13:36
→ : 以前寫程式沒要求這麼多,小公司也不太會搞提升案
→ : 以前寫程式沒要求這麼多,小公司也不太會搞提升案
推 : @imlin01 那種用一次的專案全開varchar(max)很正常吧76F 11/27 14:00
→ : 在那邊慢慢設計才真的浪費時間
→ : 關鍵字(外包)
→ : 在那邊慢慢設計才真的浪費時間
→ : 關鍵字(外包)
推 : 樓上這種觀念才是真的浪費時間79F 11/27 14:03
推 : 全沒遇過...80F 11/27 14:05
推 : 應該說,浪費時間要看是浪費誰的,自己方便,後面的人麻煩81F 11/27 14:08
→ : 對很多人來講還是會選擇自己方便的方式去做 XDD
→ : 對很多人來講還是會選擇自己方便的方式去做 XDD
推 : 文人相輕啊,自己的方法永遠最好。老早就說還是show薪資83F 11/27 14:27
→ : 單比薪水最快
→ : 單比薪水最快
推 : 竹科大廠用oracle,也請的起dba,所以不會有上述問題(?85F 11/27 14:42
推 : 電信業沒遇過這狀況86F 11/27 15:03
推 : 就是篇抱怨文 拍拍 但是還是要乖乖去上班喔87F 11/27 15:16
推 : 就沒有"後面的人"啊,就說一次性了88F 11/27 15:19
→ : 不過老是做這種,真的對自己技術沒什麼幫助就是了...
→ : 有機會還是跑吧
→ : 不過老是做這種,真的對自己技術沒什麼幫助就是了...
→ : 有機會還是跑吧
→ : 常態 請一個懂的只會資料庫沒價值91F 11/27 16:28
推 : 應該是說會投資oracle的比較可能會重視資料庫92F 11/27 16:37
推 : 現在資料庫都不便宜啊...93F 11/27 16:53
推 : 去錯地方了,換別的地方吧94F 11/27 17:03
推 : 投資 oracle/mssql 只是需要原廠 support 與背書而已XD95F 11/27 17:05
→ : 我遇過連 order by 都不知道的. 用土砲法去sort @.@96F 11/27 17:24
→ : 一般人覺得只要會select insert update delete 就可以
→ : 出來行走江湖了 XD
→ : 一般人覺得只要會select insert update delete 就可以
→ : 出來行走江湖了 XD
推 : 樓上,那種人還會跟你說這樣效率比較好99F 11/27 17:30
推 : 4100F 11/27 18:32
推 : 很多是前朝遺毒啦...後面接手的人要改發現工程浩大101F 11/27 18:49
→ : 只好一起歷史共業了
→ : 只好一起歷史共業了
推 : 這太扯,比大學畢業專案還弱103F 11/27 19:07
推 : 遇過幾個工程師資料庫table都不改名 各種複製 改程式改104F 11/27 19:50
→ : 到很火
→ : 到很火
推 : 鼎新表示106F 11/27 20:08
→ : 我還真的和老闆講過我們的產品比大學畢業專題還爛107F 11/27 20:25
→ : 所以各位大學生,你們要對自己有信心
→ : 所以各位大學生,你們要對自己有信心
→ : 原po還在上海嗎? 客戶主檔就命名為KHZD,姓名就叫XM 這種的109F 11/27 20:50
→ : 一看就知是大陸的漢語拼音的命名方式
→ : 一看就知是大陸的漢語拼音的命名方式
推 : 習慣就好 我們公司早期的資料庫欄位名稱還是中文111F 11/27 21:13
→ : 根本快吐血
→ : 根本快吐血
推 : 你有這些問題代表你離DBA還遠的很咧113F 11/27 21:37
推 : 很多年紀很大的碼農根本不在乎這些原則 尤其駐點維護114F 11/27 23:35
→ : To bobju:那是我以前在越南遇到的事,開這表的人是大115F 11/28 00:49
→ : 陸人
→ : 我是在左岸沒錯,然後很多人說上海有多強,我看了結果
→ : 不過爾爾,應該是我待的地方太爛
→ : 大陸人素質的落差比台灣大很多
→ : 謝謝大家的心理輔導,我現在好一點了
→ : 陸人
→ : 我是在左岸沒錯,然後很多人說上海有多強,我看了結果
→ : 不過爾爾,應該是我待的地方太爛
→ : 大陸人素質的落差比台灣大很多
→ : 謝謝大家的心理輔導,我現在好一點了
→ : 4121F 11/28 03:28
推 : 開varchar(max)代表那間公司完全沒人懂db,完全沒有專業,122F 11/28 09:54
→ : 可悲的是user不懂,所以完全沒意見
→ : 可悲的是user不懂,所以完全沒意見
推 : to littlethe其實我有跟我朋友提到,但最後主管是加開另一124F 11/28 10:47
→ : 個欄位,char(21),保留原來的int。聽了之後完全被打敗。
→ : 朋友的主管就堅持int一定要存在...XD
→ : 真的令人搞不懂,堅持int,寧願加開另一個欄位XD
→ : 個欄位,char(21),保留原來的int。聽了之後完全被打敗。
→ : 朋友的主管就堅持int一定要存在...XD
→ : 真的令人搞不懂,堅持int,寧願加開另一個欄位XD
→ : 我覺得那是拉不下臉承認自己不懂128F 11/28 12:13
推 : 有遇過公司開發用C#不准用linq的129F 11/28 15:44
→ : 連續三家@@~這也太慘130F 11/28 23:10
→ : to earny:再加一個欄位哦...這真的就沒意義了131F 11/29 00:47
→ : 很多時候真的是對方拉不下臉,就利用權勢蠻幹或鬥爭
→ : 很多時候真的是對方拉不下臉,就利用權勢蠻幹或鬥爭
噓 : 是的,因為會動就好,2萬筆資料和2億筆資料前者隨便就好133F 11/29 01:42
→ : 系統會動就好,有問題了,下面的工程師會抗,上面的老闆134F 11/29 13:40
→ : 也不懂,什麼都規劃的那麼好,怎麼有源源不絕的專案給老
→ : 闆報告,我現在的公司就是這樣
→ : 也不懂,什麼都規劃的那麼好,怎麼有源源不絕的專案給老
→ : 闆報告,我現在的公司就是這樣
推 : 我也遇過同事看不懂Linq所以不能用LINQ (還不是Lambai137F 11/29 16:18
→ : 還不是(lamba表示式喔)
→ : 還不是(lamba表示式喔)
推 : 你遇到的是垃圾場不是資料庫139F 11/29 16:33
--
※ 看板: terievv 文章推薦值: 0 目前人氣: 0 累積人氣: 126
回列表(←)
分享