【发布时间】:2011-09-24 21:37:24
【问题描述】:
我需要帮助设置我的 MySQL 数据库。
我希望数据库有一个名为 accounts 的表。所有用户帐户都将保存在该数据库中。用户帐户将拥有密钥:
- 名字
- 姓氏
- 电子邮件地址
- 用户名
- 密码
- 上次登录日期。
如果您能告诉我它的架构应该是什么样子,我将不胜感激。
【问题讨论】:
我需要帮助设置我的 MySQL 数据库。
我希望数据库有一个名为 accounts 的表。所有用户帐户都将保存在该数据库中。用户帐户将拥有密钥:
如果您能告诉我它的架构应该是什么样子,我将不胜感激。
【问题讨论】:
CREATE TABLE `MyDatabase`.`accounts` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`FirstName` VARCHAR( 32 ) NOT NULL ,
`LastName` VARCHAR( 32 ) NOT NULL ,
`Email` VARCHAR( 64 ) NOT NULL ,
`Username` VARCHAR( 32 ) NOT NULL ,
`Password` CHAR( 32 ) NOT NULL ,
`LastLoginDate` DATE NOT NULL
)
这假设您使用的是 MD5 散列密码(长度为 32)。将 MyDatabase 替换为您的数据库名称。
【讨论】:
我认为您的意思是用户帐户会有这些列。当然,它们并不都是候选键。
没有帐户 ID?那不是最好的唯一主键吗?
我可以看到您建议的列在用户/客户表中的位置;用户名和密码(当然是加密和加盐的)将在凭证表中。我不会在帐户表中包含任何这些。我会有一个指向拥有该帐户的用户的外键。
【讨论】: