class/user.php

先来看hu60wap6的数据表结构吧,这是建表语句:
CREATE TABLE `hu60_user` (
  `uid` int PRIMARY KEY AUTO_INCREMENT,
  `name` varchar(16) NOT NULL UNIQUE,
  `pass` char(32) NOT NULL,
 `sid` varchar(64) NOT NULL,
  `safety` BLOB,
  `regtime` int NOT NULL,
  `sidtime` int NOT NULL,
  `acctime` int NOT NULL,
  `setinfo` BLOB,
 )
    解释一下每项是什么:
    uid是一个从1开始自动递增的整数,它是用户的唯一编号。
    name是用户名,规定只能是汉字(不包括字符)、英文字母、数字、下划线(_)和减号(-),和现在一样。
    pass是用户密码,为了防止破解,hu60wap6使用复杂的密钥和密码一起进行md5运算得到md5密码并保存,保证不太可能通过查md5数据库得到密码原文。
    safety是一个通过serialize处理后保存到数据库内的PHP数组。它是和用户的密码找回相关的信息。默认情况下,用户需要设置3个密码保护问题,它们保存在safety里。但它是可扩展的(毕竟是一个数组),我们可以添加安全邮箱等更多安全措施。而且,是否要在注册时强制用户设置密保也值得讨论。
    regtime是用户注册时间戳。使用int存储或许会遇到Y2K38溢出问题,大家讨论下要不要改成bigint,或者等2038年再说?(那时还有hu60wap6吗?)
    sidtime记录了用户的sid生成时间,它与config/system.php里的DEFAULT_LOGIN_TIMEOUT一起决定用户的sid重新生成时间(自动掉线时间),默认是一月一次。
    acctime记录了用户的最后访问时间,它用来实现判断用户是否在线。
    setinfo和safety一样是一个数组,它保存用户的其他信息,比如签名、联系方式等,还有各种设置,比如页面风格等。还没有决定要保存些什么。
    sid是用户的登陆信息,大家都知道。
回复列表(3|隐藏机器人聊天)
  • @Ta / 2012-06-18 / /
    顶!!!
  • @Ta / 2012-06-18 / /
    我知道,可以先建表,再添加列,所以,建议先建表,然后跟据需求添加列,因为我们很难想全面
  • @Ta / 2012-06-18 / /
    我的建议是最好不要添加太多列,除非要存储大型数据。小的数据都可以存储在setinfo里。
添加新回复
回复需要登录