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

看板Soft_Job (軟體人)作者 (人生只有一次)時間8年前 (2017/11/05 00:36), 編輯推噓12(12030)
留言42則, 24人參與, 8年前最新討論串1/5 (看更多)
如題 某個同事不知道為什麼有個根深蒂固的觀念 每次只要談到資料表設計 都會說要把資料存成字串(非 json) 但是存在字串的話 查詢時不是會引起 full table scan 嗎? 如果是數值 拿出來的時候要轉型態才能用 存回去又要再轉成字串 某次又耳聞某公司也會這樣做 這下小弟實在不懂了 好奇好處在哪? 版上有大大願意說明一下嗎? (為什麼不問他? 因為上次說過 full table scan 的問題了 所以上次沒這樣做 這次又...) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.238.57.23 ※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1509813407.A.536.html

11/05 00:37, 8年前 , 1F
因為他不會其他作法吧...?
11/05 00:37, 1F

11/05 00:38, 8年前 , 2F
不考慮效能問題的話,字串設計很好擴充新欄位
11/05 00:38, 2F

11/05 00:43, 8年前 , 3F
不如用NoSQL?
11/05 00:43, 3F

11/05 00:51, 8年前 , 4F
擴充新欄位? 不懂 大大願意再說詳細點嗎?
11/05 00:51, 4F

11/05 00:52, 8年前 , 5F
換成 nosql 應該會有一堆人跳腳 XD
11/05 00:52, 5F

11/05 01:08, 8年前 , 6F
大部分都是懶吧..
11/05 01:08, 6F

11/05 01:15, 8年前 , 7F
基本上大概是沒什麼概念 這種方式北七死了 還要轉來轉去的
11/05 01:15, 7F

11/05 01:20, 8年前 , 8F
有用ORM的話是沒差啦
11/05 01:20, 8F

11/05 01:40, 8年前 , 9F
不一定會full scan ,看你index怎麼打....
11/05 01:40, 9F

11/05 01:42, 8年前 , 10F
只聽過在IMS DB那個年代有人這樣玩過....
11/05 01:42, 10F

11/05 01:45, 8年前 , 11F
單純方便而已,大多是NOSQL在用的,如果關聯式資料庫用
11/05 01:45, 11F

11/05 01:45, 8年前 , 12F
的話基本上就是只想靠substring,intdexof打天下沒別的
11/05 01:45, 12F

11/05 01:46, 8年前 , 13F
用途,掃描的話不用擔心現在db都做得很好,如果真的上
11/05 01:46, 13F

11/05 01:46, 8年前 , 14F
億筆資料不太可能這樣子存,除非你是某幾家大廠
11/05 01:46, 14F

11/05 01:47, 8年前 , 15F
目前會存成字串的資料格式通常都是圖檔比較多
11/05 01:47, 15F

11/05 02:00, 8年前 , 16F
也覺得是懶得花心思考慮資料型態
11/05 02:00, 16F

11/05 02:47, 8年前 , 17F
除了偷懶外想不到好處
11/05 02:47, 17F

11/05 02:48, 8年前 , 18F
如果想改變同事的觀念,直接問本人如何?
11/05 02:48, 18F

11/05 02:48, 8年前 , 19F
人的想法只有自己能改變
11/05 02:48, 19F

11/05 04:38, 8年前 , 20F
肯定是只看到一個範例以為資料都是這麼存。如果他第一
11/05 04:38, 20F

11/05 04:38, 8年前 , 21F
個看到的範例是用float, 相信他會把所有字串轉成float
11/05 04:38, 21F

11/05 04:38, 8年前 , 22F
存放..
11/05 04:38, 22F

11/05 04:55, 8年前 , 23F
貴公司不做code review的嗎...
11/05 04:55, 23F

11/05 07:53, 8年前 , 24F
我看錯了,如果是全欄位都存成字串的話,應該是腦
11/05 07:53, 24F

11/05 07:53, 8年前 , 25F
袋有洞
11/05 07:53, 25F

11/05 08:28, 8年前 , 26F
我之前有看過一次,對方的解釋是說曾經有幾次資料庫更
11/05 08:28, 26F

11/05 08:28, 8年前 , 27F
新,float增加0.001之類的,後來就全部存字串確保正確
11/05 08:28, 27F

11/05 09:32, 8年前 , 28F
個人經驗而言是用SQL做NoSQL的常態擴充才變得如此xD
11/05 09:32, 28F

11/05 09:34, 8年前 , 29F
那為什麼不用NoSQL DB? - 歡迎學到職場政治xD
11/05 09:34, 29F

11/05 09:38, 8年前 , 30F
怕數字overflow ?
11/05 09:38, 30F

11/05 10:23, 8年前 , 31F
2017年了,資料庫已經和20年前的樣子很不一樣了。
11/05 10:23, 31F

11/05 17:01, 8年前 , 32F
沒遇過上千萬筆的資料表吧
11/05 17:01, 32F

11/05 17:27, 8年前 , 33F
數字硬要存成字串,效率就差了
11/05 17:27, 33F

11/05 18:13, 8年前 , 34F
完全沒好處
11/05 18:13, 34F

11/05 19:24, 8年前 , 35F
我剛開始就是這樣幹的,我自己是非本科,所以不知道差
11/05 19:24, 35F

11/05 19:24, 8年前 , 36F
別,後來其他人給我意見後,就數字改成數字,日期轉成
11/05 19:24, 36F

11/05 19:24, 8年前 , 37F
日期
11/05 19:24, 37F

11/07 19:06, 8年前 , 38F
沒啥好處,壞處倒是不少
11/07 19:06, 38F

11/08 11:14, 8年前 , 39F
講那麼多,就是不會設計data model 而已啊,工作久了發
11/08 11:14, 39F

11/08 11:14, 8年前 , 40F
現一堆不會設計的人都不知道從哪學來的奇葩知識
11/08 11:14, 40F

11/08 23:46, 8年前 , 41F
其實銀行只有金額才會給數值型態,其它的話大都是給char
11/08 23:46, 41F

11/08 23:46, 8年前 , 42F
或varchar,但會給長度。
11/08 23:46, 42F
文章代碼(AID): #1P_UoVKs (Soft_Job)
文章代碼(AID): #1P_UoVKs (Soft_Job)