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

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

客户端发送过来的数据,尤其是密码都要经过加密处理的,而加密又是一向不可逆的过程,在更改密码时候,如果发送到后台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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值