※ 引述《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)、资料显示这些都会有小问题,
但都有办法事后克服,甚至很容易直接就从较前面的程式逻辑解决。
即使未来发生问题,也有办法修改。
相对于以上的各种缺点,
其实最严重的反而是人情世故产生的缺点。
客户或似懂非懂的长官看到你这样设计数据库。
你即使努力解释不影响专案,甚至会加速工时等正面方向,你还是会黑掉。
他们的既定印象是,你是个工作态度随便,不专业的人。
然后这种印象会跟者你好几年,甚至是一辈子。
有时候还会被当职场笑话拿来说。
这不是像程式与数据库一样,想改就能改的。
这种人情世故的大缺点,相较网络上所提到的各种缺点,绝对是严重太多了。
不要以为技术考量永远是最重要的。
人情世故永远凌驾于技术阿。