日期:2014-05-16  浏览次数:20358 次

数据库设计中char和long两种类型不要选择

如果用char,问题非常多:
1.可能浪费空间,除非正好放满。
2.会导致程序员在字段前使用trunc等截掉尾部空格的函数,要优化必须建立一些函数索引。写程序还要用rpad之类的函数。
3.如果char很大,很可能导致索引无法建立。

4.长度一变,经常要修改程序。
5.导致程序使用大量的非绑定变量。这个可能更开发语言有关,例子:
   
c_id=‘1212’  可以查询到结果
   
如果使用绑定:c_id=:a这个要看各种开发语言,因为不会补全尾部的空格,可能查询结果为空。

6.CHAR/NCHAR类型还会带来混乱(很多应用存储了信息之后却无法“找到”所存储的数据)。

还有:CHAR/NCHAR实际上只是伪装的VARCHAR2/NVARCHAR2,基于这一点,所以我认为其实只需要考虑这两种字符串类型:VARCHARNVARCHAR2

Oracle