我正在尝试设计一个带有主键的简单用户表userid
,然后是另一个userid
用作该表的外键的users
表。我在这里有正确的想法吗?
CREATE TABLE `users` (
`userid` INT(6) NOT NULL,
`username` VARCHAR(50) NOT NULL,
`password` VARCHAR(50) NOT NULL,
`date_join` DATE NOT NULL, <- should I just make this CURDATE instead?
`user_handle` VARCHAR(50) NOT NULL,
`date_modified` DATE NOT NULL,
PRIMARY KEY (`userid`)
)
1)如何使用户名自动递增?
2)如何将密码存储为 MD5 哈希?另外,我已经阅读了各种强烈推荐 brcrypt 的编码器,想法?
3) 如何将默认值设置user_handle
为电子邮件的第一部分在@
符号之前?这样john@smith.com
会产生一个用户句柄john
。
4) 在设计用户数据库时我应该采取什么额外的安全措施?
5) 与用户关联的其他表中的外键是否需要指向用户的外键userid
?
非常感谢大家,我希望这不是太多问题!