【问题标题】:Updating relational database in PHP/MySQL在 PHP/MySQL 中更新关系数据库
【发布时间】:2012-04-02 09:10:09
【问题描述】:

我正在自学网络编程。我正在尝试为网站创建用户帐户。我有两个数据库 - 第一个(db_users - userid(自动增量),用户名,密码)存储用户信息,如用户名,密码等,第二个(db_address - userid(自动增量),address1,address2,city)存储用户的地址。

现在,当我注册用户时,如何确保两个表都更新为正确的用户 ID?或者这不是关系数据库的工作方式?

【问题讨论】:

  • 快速旁注:牢记安全性,使用散列和加盐密码。以纯文本格式保存密码是一个很大的禁忌。

标签: php mysql web user-accounts


【解决方案1】:

用户数据不是关系数据库的情况。
为用户提供 2 个表格(以及为地址提供 2 个字段)是没有意义的。

制作一张表,然后添加 cmets 表并在其中包含用户 ID 字段。
因此,您将拥有关系数据库的真实案例。

【讨论】:

    【解决方案2】:

    无需进入你想做的代码:

    1. 在用户表中插入详细信息
    2. 获取使用$id = mysql_insert_id()插入的ID
    3. 使用$id将详细信息插入地址表

    编辑:如果使用多个 MySQL 连接,您需要执行 $id = mysql_insert_id($connection)

    【讨论】:

      【解决方案3】:

      首先,我认为您可能有两个表,而不是两个数据库。其次,您的地址表应该有一个 addressid 列,您应该自动递增该列。您自己负责在地址表中设置正确的用户 ID。这样,每个帐户可以有多个地址。例如,1 个用于交付,1 个用于计费。

      顺便说一句,如果您只计划每个用户有 1 个地址,您可以考虑合并这两个表并将地址信息添加到帐户表中。形式上,这会违反规范化规则,但在这种情况下,它可能会更实用。

      【讨论】:

      • 抱歉,是的,我有两张桌子。我想我真正的问题是,如果我的地址表有 addressid 和 userid。并且用户在网站上注册了,那么我如何使用正确的用户 ID 更新地址表?
      【解决方案4】:

      Userid 不应该是第二个表中的自动递增索引。分离用户和地址数据意味着一个用户可以连接到多个地址,并且多个用户可以有相同的地址(换句话说,住在一起)。或者你可以合并表格,如果它适合你。

      db_users:

      • 用户 ID(自动递增)
      • 用户名
      • 密码

      db_address:

      • address_id(自动递增)
      • 用户名
      • 地址1
      • 地址2
      • 城市

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-03-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-04-04
        • 2013-08-04
        • 1970-01-01
        相关资源
        最近更新 更多