※ 本文為 terievv 轉寄自 ptt.cc 更新時間: 2017-12-03 21:01:41
看板 Soft_Job
作者 標題 [討論] 把資料全存成字串的好處是?
時間 Sun Nov 5 00:36:45 2017
如題
某個同事不知道為什麼有個根深蒂固的觀念
每次只要談到資料表設計
都會說要把資料存成字串(非 json)
但是存在字串的話
查詢時不是會引起 full table scan 嗎?
如果是數值 拿出來的時候要轉型態才能用
存回去又要再轉成字串
某次又耳聞某公司也會這樣做
這下小弟實在不懂了
好奇好處在哪?
版上有大大願意說明一下嗎?
(為什麼不問他? 因為上次說過 full table scan 的問題了
所以上次沒這樣做 這次又...)
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.238.57.23
※ 文章代碼(AID): #1P_UoVKs (Soft_Job)
※ 文章網址: https://www.ptt.cc/bbs/Soft_Job/M.1509813407.A.536.html
→ : 因為他不會其他作法吧...?1F 11/05 00:37
推 : 不考慮效能問題的話,字串設計很好擴充新欄位2F 11/05 00:38
→ : 不如用NoSQL?3F 11/05 00:43
→ : 擴充新欄位? 不懂 大大願意再說詳細點嗎?4F 11/05 00:51
→ : 換成 nosql 應該會有一堆人跳腳 XD
→ : 換成 nosql 應該會有一堆人跳腳 XD
→ : 大部分都是懶吧..6F 11/05 01:08
推 : 基本上大概是沒什麼概念 這種方式北七死了 還要轉來轉去的7F 11/05 01:15
→ : 有用ORM的話是沒差啦8F 11/05 01:20
→ : 不一定會full scan ,看你index怎麼打....9F 11/05 01:40
→ : 只聽過在IMS DB那個年代有人這樣玩過....
→ : 只聽過在IMS DB那個年代有人這樣玩過....
推 : 單純方便而已,大多是NOSQL在用的,如果關聯式資料庫用11F 11/05 01:45
→ : 的話基本上就是只想靠substring,intdexof打天下沒別的
→ : 用途,掃描的話不用擔心現在db都做得很好,如果真的上
→ : 億筆資料不太可能這樣子存,除非你是某幾家大廠
→ : 目前會存成字串的資料格式通常都是圖檔比較多
→ : 的話基本上就是只想靠substring,intdexof打天下沒別的
→ : 用途,掃描的話不用擔心現在db都做得很好,如果真的上
→ : 億筆資料不太可能這樣子存,除非你是某幾家大廠
→ : 目前會存成字串的資料格式通常都是圖檔比較多
推 : 也覺得是懶得花心思考慮資料型態16F 11/05 02:00
推 : 除了偷懶外想不到好處17F 11/05 02:47
→ : 如果想改變同事的觀念,直接問本人如何?
→ : 人的想法只有自己能改變
→ : 如果想改變同事的觀念,直接問本人如何?
→ : 人的想法只有自己能改變
推 : 肯定是只看到一個範例以為資料都是這麼存。如果他第一20F 11/05 04:38
→ : 個看到的範例是用float, 相信他會把所有字串轉成float
→ : 存放..
→ : 個看到的範例是用float, 相信他會把所有字串轉成float
→ : 存放..
→ : 貴公司不做code review的嗎...23F 11/05 04:55
→ : 我看錯了,如果是全欄位都存成字串的話,應該是腦24F 11/05 07:53
→ : 袋有洞
→ : 袋有洞
推 : 我之前有看過一次,對方的解釋是說曾經有幾次資料庫更26F 11/05 08:28
→ : 新,float增加0.001之類的,後來就全部存字串確保正確
→ : 新,float增加0.001之類的,後來就全部存字串確保正確
→ : 個人經驗而言是用SQL做NoSQL的常態擴充才變得如此xD28F 11/05 09:32
→ : 那為什麼不用NoSQL DB? - 歡迎學到職場政治xD
→ : 那為什麼不用NoSQL DB? - 歡迎學到職場政治xD
推 : 怕數字overflow ?30F 11/05 09:38
→ : 2017年了,資料庫已經和20年前的樣子很不一樣了。31F 11/05 10:23
推 : 沒遇過上千萬筆的資料表吧32F 11/05 17:01
推 : 數字硬要存成字串,效率就差了33F 11/05 17:27
→ : 完全沒好處34F 11/05 18:13
推 : 我剛開始就是這樣幹的,我自己是非本科,所以不知道差35F 11/05 19:24
→ : 別,後來其他人給我意見後,就數字改成數字,日期轉成
→ : 日期
→ : 別,後來其他人給我意見後,就數字改成數字,日期轉成
→ : 日期
→ : 沒啥好處,壞處倒是不少38F 11/07 19:06
→ : 講那麼多,就是不會設計data model 而已啊,工作久了發39F 11/08 11:14
→ : 現一堆不會設計的人都不知道從哪學來的奇葩知識
→ : 現一堆不會設計的人都不知道從哪學來的奇葩知識
推 : 其實銀行只有金額才會給數值型態,其它的話大都是給char41F 11/08 23:46
→ : 或varchar,但會給長度。
→ : 或varchar,但會給長度。
--
※ 看板: terievv 文章推薦值: 0 目前人氣: 0 累積人氣: 111
回列表(←)
分享