【问题标题】:Help setting up MySQL Database帮助设置 MySQL 数据库
【发布时间】:2011-09-24 21:37:24
【问题描述】:

我需要帮助设置我的 MySQL 数据库。

我希望数据库有一个名为 accounts 的表。所有用户帐户都将保存在该数据库中。用户帐户将拥有密钥:

  • 名字
  • 姓氏
  • 电子邮件地址
  • 用户名
  • 密码
  • 上次登录日期。

如果您能告诉我它的架构应该是什么样子,我将不胜感激。

【问题讨论】:

    标签: mysql schema


    【解决方案1】:
    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 替换为您的数据库名称。

    【讨论】:

    • 那么你需要为每个用户创建一个新表吗?
    • 否要添加用户,您将使用 MySQL "INSERT INTO" 语法。喜欢:插入帐户(名字、姓氏、电子邮件、用户名、密码、LastLoginDate)值(“John”、“Smith”、“Jsmith@gmail.com”、“jsmith”、“jsmithpasswordhash”、“日期”)跨度>
    • 太棒了,谢谢。还有一件事,你能告诉我如何将新创建的表的排序规则更改为 UTF-8?
    • ALTER TABLE 帐户字符集 utf8
    【解决方案2】:

    我认为您的意思是用户帐户会有这些列。当然,它们并不都是候选键。

    没有帐户 ID?那不是最好的唯一主键吗?

    我可以看到您建议的列在用户/客户表中的位置;用户名和密码(当然是加密和加盐的)将在凭证表中。我不会在帐户表中包含任何这些。我会有一个指向拥有该帐户的用户的外键。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-12
      • 2011-07-17
      • 1970-01-01
      • 2011-05-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-11
      相关资源
      最近更新 更多