0

举一个实际的例子,让我们考虑尝试在 SQL 中对 Pokemon 元素进行建模。

一种元素有许多优点和缺点,但它们本身也是类型元素。您将如何在数据库中对其建模?

我相信解决方案是创建一个额外的 2 个表,也许 element_strength 和 element_weakness 就像在多对多关系中加入表一样。这是正确的吗?

4

1 回答 1

1

是的,就是这样,但您可以简化:

表元素idElement | 姓名

表弱点 idRow | idElement |idElementStrongAgainst

无需添加强度表,您只需查看另一列输入的弱点表即可。

所以要找到你做的水的力量

SELECT strVS.Name 
FROM Element AS el
JOIN Weakness on el.idElement = Weakness.idElement
JOIN Element As strVS on weakness.idElementStrongAgainst= strVS.idElement
WHERE el.Name = 'water'

并找出弱点:

SELECT weakVS.Name 
FROM Element AS el
JOIN Weakness on el.idElement = Weakness.idElementStrongAgainst
JOIN Element As weakVS on weakness.idElement = weakVS.idElement
WHERE el.Name = 'water'
于 2013-08-23T12:14:43.207 回答