对于一个实际例子,我们考虑尝试在SQL中对Pokemon元素进行建模。
一个元素有许多优点和缺点,但它们本身也是类型元素。你会如何在数据库中建模?
我相信解决方案是创建一个额外的2个表,也许是element_strength和element_weakness,它们就像在多对多关系中连接表一样。这是对的吗?
答案 0 :(得分: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'