2013.3.27工作中关于数据库设计的…

来源:互联网 发布:葡萄牙红酒淘宝店 编辑:程序博客网 时间:2024/06/05 15:50

关于未加密密码字段的建议

客户端发送过来的数据,尤其是密码都要经过加密处理的,而加密又是一向不可逆的过程,在更改密码时候,如果发送到后台php程序的是加密过的数据,那么未加密字段password就显得很鸡肋。

关于主键id的建议

从占用数据库空间的角度考虑

12位随机码占用的数据库空间为6个字节。而用int字段类型的话则占用的是4个字节

如果我们有10000条数据的话,那么10000x6-4=20000B=20M的空间 如果我们有100万条数据的话占用的则是2G的空间。100万条数据浪费2G的容量。

从数据库优化的角度看

用户id是最长在where子句中出现的了,数据库中的查询是比对方式的,mysql将数据一个一个的与要查询的结果字段进行比对,理论上int字段类型的数据要比字符型数据快,主键id要建立索引,索引本身也要占用大量的磁盘空间,每次用户的变迁都要对索引字段进行修改,有规律的intchar速度要快很多。

从操作方便性的角度看

每次插入id都要运行生成随机码的函数,这本身就不方便,用primarykey auto的话这个功能是c语言封装好了的,php的底层是用c语言写的,php是对c语言的再次封装,效率要比C代码低好多。

从数据库安全的角度看

用自动增长型的字段类型,并不会被用户猜出来,即使猜出来也没有用,我们的注册登录并不通过id 只有id并不能对我们的数据库造成任何威胁,也不能对我们的后台程序造成任何威胁。真如果能根据咱们的id就破解我们数据库网站的人,那么他的技术足可以绕过我们的注册登录机制,伪造请求对我们的数据库以及后天程序进行攻击

综上考虑我建议id字段用primarykey auto_increament

0 0
原创粉丝点击