我正在进行数据库设计,每个用户都有一台机器,包含7个组件。每个组件都有一个级别。想想浏览器游戏,你必须在其中升级不同的东西。
这是用户表中的图片。我需要从中获取一个用户行。
将此表连接到该表,该表将列名称解析为组件的ID。
然后选择7个列,其中包含与用户行匹配的匹配级别和ID。
用户表将包含大量行,因此必须在where子句之后进行连接。
我从来没有真正看过加入,但在这里,我是一个非常复杂的人,我不知道从哪里开始。什么是一个合适的mysql查询,你能详细说明它是如何工作的吗?这是一个学习项目,所以对工作解决方案的每一个提示都非常感谢!
修改
以下是一个用例示例:
用户ID为3的用户登录。他的ID行表明他的能量组件为0级,他的cpu组件为1级。解析这些名称,我们发现能量的ComponentID为1, cpu的ComponentID为3.我们将这些与升级表相匹配,并发现ComponentID为1且level为0的组件的输出为15,而LevelID为1的组件为1的组件的输出为8。 / p>
+------+------+-----+----------+------+----+
|UserID|type |level|level_name|output|etc.|
+------+------+-----+----------+------+----+
|3 |energy|0 |Knopfzelle|15 |... |
+------+------+-----+----------+------+----+
|3 |cpu |1 |Register |8 |... |
+------+------+-----+----------+------+----+
删除用户列甚至可以......
EDIT2:
感谢这个问题下的所有评论,我决定审查我的数据库结构,并在出现新问题时开始一个新问题。如果您有针对此特定 bad_design 用户案例的解决方案,即使这是不好的做法,我也很乐意看到它。