Re: [討論] 把資料全存成字串的好處是?

看板Soft_Job (軟體人)作者 (存取違規)時間8年前 (2017/11/05 02:44), 編輯推噓8(9116)
留言26則, 14人參與, 8年前最新討論串2/5 (看更多)
完全沒有好處 我是他主管的話,早就開除他了 根本是軟體圈的亂源! 是不是table scan也不是關鍵問題,所以你也是非懂似懂。 首先,資料排序就是一個問題,數值型態排序,100 > 9,但是字串 “9” > “100”用 錯型態資料庫對你的排序完全是錯亂的! 更不要說 index 在這種情況無法發揮效益!因為index 就是依賴B-Tree排序來加快效能! 再來就是禍害千年的維護問題,某個欄位看起來都是數字,但資料型態是字串,如果你沒 有整個資料庫全部的資料都看過,你敢打包票說裡面全是數字沒有不乾淨的髒東西? 這種在做資料轉移和統計分析最容易踩到古人的地雷 總之就是一個混蛋、亂源,快讓他退休吧 要我刪文,老規矩,私信我 ※ 引述《andymai (人生只有一次)》之銘言: : 如題 : 某個同事不知道為什麼有個根深蒂固的觀念 : 每次只要談到資料表設計 : 都會說要把資料存成字串(非 json) : 但是存在字串的話 : 查詢時不是會引起 full table scan 嗎? : 如果是數值 拿出來的時候要轉型態才能用 : 存回去又要再轉成字串 : 某次又耳聞某公司也會這樣做 : 這下小弟實在不懂了 : 好奇好處在哪? : 版上有大大願意說明一下嗎? : (為什麼不問他? 因為上次說過 full table scan 的問題了 : 所以上次沒這樣做 這次又...) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.32.139.28 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1509821058.A.AE9.html

11/05 05:36, 8年前 , 1F
最怕還到觀念完全錯誤還以爲自己是對的, 指正他還說我
11/05 05:36, 1F

11/05 05:36, 8年前 , 2F
這樣做這麼久了都沒出事我是對的
11/05 05:36, 2F

11/05 06:32, 8年前 , 3F
我上一份工作剛進去 要接api也是發現資料庫欄位全部都字
11/05 06:32, 3F

11/05 06:32, 8年前 , 4F
串… 格式還不一致導致我還要例外處理 礙於菜鳥也不能說
11/05 06:32, 4F

11/05 06:32, 8年前 , 5F
什麼
11/05 06:32, 5F

11/05 08:07, 8年前 , 6F
待的小公司 之前數值跟日期都存字串 轉換時採了一堆雷
11/05 08:07, 6F

11/05 08:13, 8年前 , 7F
不只小公司,大公司也有可能這樣搞......
11/05 08:13, 7F

11/05 08:13, 8年前 , 8F
如果是跨國外商,情況可能好一點
11/05 08:13, 8F

11/05 09:34, 8年前 , 9F
不是大小公司問題 是最初寫的那個人是不是製杖問題
11/05 09:34, 9F

11/05 11:24, 8年前 , 10F
碰過很多數字存字串的耶...不過日期存字串就有點扯了
11/05 11:24, 10F

11/05 12:39, 8年前 , 11F
感覺那個人不想了解 DB 內欄位類型的差異
11/05 12:39, 11F

11/05 12:58, 8年前 , 12F
銀行滿多系統需要日期存字串的...
11/05 12:58, 12F

11/05 15:13, 8年前 , 13F
政府機關也是一堆這種垃圾db
11/05 15:13, 13F

11/05 19:26, 8年前 , 14F
政府機關的資料真的很垃圾,沒辦法,所以才要data clea
11/05 19:26, 14F

11/05 19:26, 8年前 , 15F
n
11/05 19:26, 15F

11/05 20:30, 8年前 , 16F
但是,記得有的語言似乎可以用字母順序排序or大小(?
11/05 20:30, 16F

11/05 20:30, 8年前 , 17F
忘記哪個語言
11/05 20:30, 17F

11/05 20:52, 8年前 , 18F
樓上,就是因為按照字母順序排序,所以9才會大於100
11/05 20:52, 18F

11/05 20:52, 8年前 , 19F
11/05 20:52, 19F

11/05 20:54, 8年前 , 20F
因為字串比對使用字元內碼排序,無論ascii或unicode
11/05 20:54, 20F

11/05 20:54, 8年前 , 21F
都一樣
11/05 20:54, 21F

11/06 00:14, 8年前 , 22F
都用字串了,當然是存009啊
11/06 00:14, 22F

11/06 00:38, 8年前 , 23F
當你資料突破千位,上面的方法變成要臨時擴充,舊
11/06 00:38, 23F

11/06 00:39, 8年前 , 24F
資料要全部抓出來轉換,這不是禍害千年的維護問題
11/06 00:39, 24F

11/06 00:39, 8年前 , 25F
嗎?不做的話,系統就會開始異常了
11/06 00:39, 25F

11/06 22:13, 8年前 , 26F
我永遠記得有個年資18年的前輩用字串來判斷數字的
11/06 22:13, 26F
文章代碼(AID): #1P_Wg2hf (Soft_Job)
文章代碼(AID): #1P_Wg2hf (Soft_Job)