[讨论] 把资料全存成字串的好处是?

楼主: andymai (人生只有一次)   2017-11-05 00:36:45
如题
某个同事不知道为什么有个根深蒂固的观念
每次只要谈到资料表设计
都会说要把资料存成字串(非 json)
但是存在字串的话
查询时不是会引起 full table scan 吗?
如果是数值 拿出来的时候要转型态才能用
存回去又要再转成字串
某次又耳闻某公司也会这样做
这下小弟实在不懂了
好奇好处在哪?
版上有大大愿意说明一下吗?
(为什么不问他? 因为上次说过 full table scan 的问题了
所以上次没这样做 这次又...)
作者: y3k (激流を制するは静水)   2017-11-05 00:37:00
因为他不会其他作法吧...?
作者: monoceros629 (独角兽)   2017-11-05 00:38:00
不考虑效能问题的话,字串设计很好扩充新字段
作者: slamgundam (Rick)   2017-11-05 00:43:00
不如用NoSQL?
楼主: andymai (人生只有一次)   2017-11-05 00:51:00
扩充新字段? 不懂 大大愿意再说详细点吗?换成 nosql 应该会有一堆人跳脚 XD
作者: shortoneal (不告诉你咧)   2017-11-05 01:08:00
大部分都是懒吧..
作者: aoksc (重出江湖)   2017-11-05 01:15:00
基本上大概是没什么概念 这种方式北七死了 还要转来转去的
作者: yyc1217 (somo)   2017-11-05 01:20:00
有用ORM的话是没差啦
作者: iFEELing (ing)   2017-11-05 01:40:00
不一定会full scan ,看你index怎么打....只听过在IMS DB那个年代有人这样玩过....
作者: THEWORLDS (天下)   2017-11-05 01:45:00
单纯方便而已,大多是NOSQL在用的,如果关联式数据库用的话基本上就是只想靠substring,intdexof打天下没别的用途,扫描的话不用担心现在db都做得很好,如果真的上亿笔资料不太可能这样子存,除非你是某几家大厂目前会存成字串的资料格式通常都是图档比较多
作者: t64141 (榕树)   2017-11-05 02:00:00
也觉得是懒得花心思考虑资料型态
作者: SamMa (8月世青赛)   2017-11-05 02:47:00
除了偷懒外想不到好处如果想改变同事的观念,直接问本人如何?人的想法只有自己能改变
作者: stitchris (史迪奇里斯)   2017-11-05 04:38:00
肯定是只看到一个范例以为资料都是这么存。如果他第一个看到的范例是用float, 相信他会把所有字串转成float存放..
作者: flash5408   2017-11-05 04:55:00
贵公司不做code review的吗...
作者: monoceros629 (独角兽)   2017-11-05 07:53:00
我看错了,如果是全字段都存成字串的话,应该是脑袋有洞
作者: day831231 (下个地点)   2017-11-05 08:28:00
我之前有看过一次,对方的解释是说曾经有几次数据库更新,float增加0.001之类的,后来就全部存字串确保正确
作者: dreamnook (亚龙)   2017-11-05 09:32:00
个人经验而言是用SQL做NoSQL的常态扩充才变得如此xD那为什么不用NoSQL DB? - 欢迎学到职场政治xD
作者: join183club (183club)   2017-11-05 09:38:00
怕数字overflow ?
作者: bbser   2017-11-05 10:23:00
2017年了,数据库已经和20年前的样子很不一样了。
作者: ChungLi5566 (中坜56哥)   2017-11-05 17:01:00
没遇过上千万笔的资料表吧
作者: abc0922001 (中士abc)   2017-11-05 17:27:00
数字硬要存成字串,效率就差了
作者: twntwn   2017-11-05 18:13:00
完全没好处
作者: f496328mm (为什么会流泪)   2017-11-05 19:24:00
我刚开始就是这样干的,我自己是非本科,所以不知道差别,后来其他人给我意见后,就数字改成数字,日期转成日期
作者: zerrofighter   2017-11-07 19:06:00
没啥好处,坏处倒是不少
作者: johnny94 (32767)   2017-11-08 11:14:00
讲那么多,就是不会设计data model 而已啊,工作久了发现一堆不会设计的人都不知道从哪学来的奇葩知识
作者: jackaabb (林)   2017-11-08 23:46:00
其实银行只有金额才会给数值型态,其它的话大都是给char或varchar,但会给长度。

Links booklink

Contact Us: admin [ a t ] ucptt.com