关于数据库建表时字段的建议
设计数据库时,很注重字段类型及长度,因为书上说,会有性能问题,因为char比varchar速度要快很多,所以能用固定长度的就不要用变长字段,比如身份证号就可以使用CHAR(18),而不应该使用VARCHAR(18)。 Nvarchar占的空间要比varchar大,所以确定是英文时,就不要使用Nvarchar。 主键如果能用tinyint就不要用int,能用int就不要用GUID,节省空间速度快。不太关注数据库字段类型及长度,因为经常发生数据库字段设置过小的问题,或要改变类型如果使用了多个存储过程对一个表增改,当类型或字段长度变化时,就不得不去更改那些存储过程,如果漏掉哪个,程序执行结果也许就是错的。如:字段长度变长时,没有更新存储过程字段长度,程序照常执行,不会报错,存储过程会自动从长的字符串里截取他所支持的长度插到数据库里。
对于任何字段长度都不应该过于小气,否则未知的变化会造成前后台都要修改
1、对于开关型字段建议number(1,0) 而不是varchar2(1),避免用户错误保存Y/N,而不是1/0,这样可能会引入大小写问题
2、对于数据字典编码字段,不要小气的确定为3位,最好统一为32位
经验证明,有时受从其它系统数据接入的影响,由于没有对照项,会直接保存原始值,而原始值一般都5-10位
统一为32位的好处是,可以考虑利用GUID来生成数据字典编码,这样在数据合并时非常有优势.
3、对于一般性录入字段,如:编号,轴号,车号,不要为了一时的"绝对"而设置确定的长度,最好统一成较优的长度,如32位!
如:车号最早是6位,没多久就改成了7位! 轴号开始为8位,但实际上有15位的轴号!轴承编号由10改为了20位
4、对于类似名称的字段: 如单位名称, 数据字典项目的名称等,最好再大一些,设成60位!
5、对于备注类型的字段,一般内容在30个汉字左右,所以推荐设置为100
6、对于长文本的字段,一般内容在200个汉字左右,推荐设置为1000
7、对保存SQL语句的字段(特殊情况,如配置传输条件等),至少要设置为2000,最大是4000
8、对于数字字段,除非精度要求,统一为number是个较好的选择 (如果需要,请尽量提前考虑好精度可能的变化)
number默认精度为15位(整数位数+小数位数=15位,小数点位置任意),其它大数值也可以保存,但是采用的是科学计数法,有精度损失
用number,不指定精度的最大的好处是不限制数值的精度和范围
如果指定number(2,1),则存入的数值范围在-9.9 至 9.9之间,如果用户提出精度调整为2位,则需要修改数据库和程序!

浙公网安备 33010602011771号