Re: [请益] DB设计上为何不要都开NVARCHAR2(4000)

楼主: DrTech (竹科管理处网军研发人员)   2014-08-16 12:29:25
※ 引述《returnbool (lasa)》之铭言:
: 各位前辈,目前同仁们在讨论一个问题,主要是关于数据库设计方面,
: 根据Oracle的说明 NVARCHAR2 为长度可变动的字段格式,
: 有个问题是,假设设计身分证的字段,
: 当我把字段设定成ID_NUM NVARCHAR2(10) 与 ID_NUM NVARCHAR2(4000)
: 就前提来看,只要我都只存10个字符,那个所占用的空间"应该"是一样的,
: 如果说站在这个角度上,我将所有的字段都设定成 NVARCHAR2(4000),
: 那么有没有非常显在的缺点 ?
: 目前是想像的到的
: 1. 无法从DB Schema看出长度限制
: 2. table fragmentation
: 3. 效能问题
: 还有其他潜在的问题吗 ? 若是都把字段设成NVARCHAR2(4000)的话呢 ?
这问题我想很多人都知道"小"问题,但却说不出有什么影响重大的问题。
效能、安全、空间、索引(index)、资料显示这些都会有小问题,
但都有办法事后克服,甚至很容易直接就从较前面的程式逻辑解决。
即使未来发生问题,也有办法修改。
相对于以上的各种缺点,
其实最严重的反而是人情世故产生的缺点。
客户或似懂非懂的长官看到你这样设计数据库。
你即使努力解释不影响专案,甚至会加速工时等正面方向,你还是会黑掉。
他们的既定印象是,你是个工作态度随便,不专业的人。
然后这种印象会跟者你好几年,甚至是一辈子。
有时候还会被当职场笑话拿来说。
这不是像程式与数据库一样,想改就能改的。
这种人情世故的大缺点,相较网络上所提到的各种缺点,绝对是严重太多了。
不要以为技术考量永远是最重要的。
人情世故永远凌驾于技术阿。
作者: alan3100 (BOSS)   2014-08-18 12:49:00
我到是很想看你怎样解释不影响专案还会加速工时示范一下前面程式花很小的功克服需要上小时的full scan
作者: MephistoH (默非斯托)   2014-08-19 10:32:00
就像我,推荐主管新东西,好用又省事,反而黑掉...最近反而高层不满主管的旧思维,整个部门都黑掉

Links booklink

Contact Us: admin [ a t ] ucptt.com