如何将用户数据与其他表连接?

时间:2017-05-05 07:53:18

标签: mysql

我正在创建简单的网络浏览器游戏。我已经注册并登录表单了。我有一个包含用户信息的数据库和表: 用户身份 用户名 USEREMAIL 为userpass

我需要额外的数据 - 资源。我必须创建新的表资源,我想将这两个信息连接到1个用户(1 userId)。我的想法是创建新的表资源: userId(必须与用户表中的相同) 木 铁 石

这个问题的解决方案是什么?请帮帮我。

1 个答案:

答案 0 :(得分:0)

请记住,数据库设计选择通常基于您想要执行的查询类型,我认为您有两种选择。

第一个选项是遵循您描述的路径,这意味着resources表中每种资源类型都有一列

resources
user_id (fk for id of user) | wood_amount | iron_amount | stone_amount

这是最简单的设计,但如果明天要添加其他类型的资源,您将被迫添加一列。然后另一个。然后另一个。然后另一个。

另一个选择是将usersresources之间的关系设计为标准many-to-many关系,这意味着您将有三个表

user
the one you already have

resource
resource_id | resource_desc

user_resources
user_id (fk to id of user) | resource_id (fk to id of resource | amount

这样查询数据库中的用户资源可能需要和额外的连接,但添加新类型的资源只是插入resource表。