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

楼主: accessdenied (存取违规)   2017-11-05 02:44:15
完全没有好处
我是他主管的话,早就开除他了
根本是软件圈的乱源!
是不是table scan也不是关键问题,所以你也是非懂似懂。
首先,资料排序就是一个问题,数值型态排序,100 > 9,但是字串 “9” > “100”用
错型态数据库对你的排序完全是错乱的!
更不要说 index 在这种情况无法发挥效益!因为index 就是依赖B-Tree排序来加快效能!
再来就是祸害千年的维护问题,某个字段看起来都是数字,但资料型态是字串,如果你没
有整个数据库全部的资料都看过,你敢打包票说里面全是数字没有不干净的脏东西?
这种在做资料转移和统计分析最容易踩到古人的地雷
总之就是一个混蛋、乱源,快让他退休吧
要我删文,老规矩,私信我
※ 引述《andymai (人生只有一次)》之铭言:
: 如题
: 某个同事不知道为什么有个根深蒂固的观念
: 每次只要谈到资料表设计
: 都会说要把资料存成字串(非 json)
: 但是存在字串的话
: 查询时不是会引起 full table scan 吗?
: 如果是数值 拿出来的时候要转型态才能用
: 存回去又要再转成字串
: 某次又耳闻某公司也会这样做
: 这下小弟实在不懂了
: 好奇好处在哪?
: 版上有大大愿意说明一下吗?
: (为什么不问他? 因为上次说过 full table scan 的问题了
: 所以上次没这样做 这次又...)
作者: stitchris (史迪奇里斯)   2017-11-05 05:36:00
最怕还到观念完全错误还以为自己是对的, 指正他还说我这样做这么久了都没出事我是对的
作者: arxing (Arxing)   2017-11-05 06:32:00
我上一份工作刚进去 要接api也是发现数据库字段全部都字串… 格式还不一致导致我还要例外处理 碍于菜鸟也不能说什么
作者: katy50306 (小白熊)   2017-11-05 08:07:00
待的小公司 之前数值跟日期都存字串 转换时采了一堆雷
作者: chocopie (好吃的巧克力派 :))   2017-11-05 08:13:00
不只小公司,大公司也有可能这样搞......如果是跨国外商,情况可能好一点
作者: fgh81113 (阿景)   2017-11-05 09:34:00
不是大小公司问题 是最初写的那个人是不是制杖问题
作者: abccbaandy (敏)   2017-11-05 11:24:00
碰过很多数字存字串的耶...不过日期存字串就有点扯了
作者: mintu (MinTu)   2017-11-05 12:39:00
感觉那个人不想了解 DB 内字段类型的差异
作者: devilkool (对猫毛过敏的猫控)   2017-11-05 12:58:00
银行满多系统需要日期存字串的...
作者: ck52623 (无端神伤)   2017-11-05 15:13:00
政府机关也是一堆这种垃圾db
作者: f496328mm (为什么会流泪)   2017-11-05 19:26:00
政府机关的资料真的很垃圾,没办法,所以才要data clean
作者: expury (ao6x87)   2017-11-05 20:30:00
但是,记得有的语言似乎可以用字母顺序排序or大小(?忘记哪个语言
楼主: accessdenied (存取违规)   2017-11-05 20:52:00
楼上,就是因为按照字母顺序排序,所以9才会大于100啊因为字串比对使用字符内码排序,无论ascii或unicode都一样
作者: soi1dsnake (索立德史捏克)   2017-11-06 00:14:00
都用字串了,当然是存009啊
楼主: accessdenied (存取违规)   2017-11-06 00:38:00
当你资料突破千位,上面的方法变成要临时扩充,旧资料要全部抓出来转换,这不是祸害千年的维护问题吗?不做的话,系统就会开始异常了
作者: frank868 (frank)   2017-11-06 22:13:00
我永远记得有个年资18年的前辈用字串来判断数字的

Links booklink

Contact Us: admin [ a t ] ucptt.com