我正在自学web编程。我正在尝试为一个网站创建一个用户帐户。我有两个数据库——第一个数据库(db_users-userid(自动递增),username,password)存储用户信息,如用户名、密码等;第二个数据库(db_address-userid(自动增值),address1,address2,city)存储用户地址。
现在,当我注册一个用户时,我如何确保这两个表都更新了正确的用户id?或者关系数据库不是这样工作的?
用户数据不是关系数据库的情况
为用户设置2个表(以及为地址设置2个字段)是没有意义的。
使其成为一个表,然后添加注释表并在其中包含用户id字段。
因此,您将有一个关系数据库的真实案例。
不进入您想要执行的代码:
- 将详细信息插入用户表
- 使用
$id = mysql_insert_id()
插入ID - 使用
$id
将详细信息插入地址表
编辑:如果使用多个MySQL连接,则需要执行$id = mysql_insert_id($connection)
首先,我认为您可能有两个表,而不是两个数据库。其次,您的地址表应该有一个addressid列,您应该自动递增该列。您有责任在地址表中设置正确的userid。这样,每个帐户可以有多个地址。例如,1用于交付,1用于计费。
顺便说一句,如果你只计划每个用户有一个地址,你可以考虑合并这两个表,并将地址信息添加到帐户表中。从形式上讲,这将违反规范化规则,但在这种情况下,这可能更实际。
Userid不应是第二个表中的自动递增索引。分离用户和地址数据意味着一个用户可以连接到一个以上的地址,多个用户可以有相同的地址(换句话说,住在一起)。如果合适的话,你也可以合并这些表。
db_users:
- userid(自动递增)
- 用户名
- 密码
db_address:
- address_id(自动递增)
- userid
- 地址1
- 地址2
- 城市