gpt4 book ai didi

mysql - SQL - 如何插入同一列具有多个值的记录?

转载 作者:行者123 更新时间:2023-11-29 20:11:17 24 4
gpt4 key购买 nike

我正在创建一个基于口袋妖怪的数据库,但目前我很难插入具有不同 Action 的口袋妖怪。

每个神奇宝贝都有一套 Action ,所以不仅仅是一个 Action ,而是很多 Action 。然而,当我尝试将具有可变长度移动量的 Pokemon 插入表中时,MySQL 会忽略之前的移动,只插入最后一个移动。

简而言之:如何插入同一 Pokemon 但 Action 不同的多个记录?

[我想一个很好的类似的现实例子是一个拥有多个电子邮件地址的人。我该如何将其插入到表中?]

最佳答案

问题在于,您将其实现为一对一关系,但您拥有的是多对多关系(每个神奇宝贝有许多 Action ,每个 Action 都可以被许多神奇宝贝学习)。

您可能想要做的是有 2 个表。

Table 1: Pokemon
ID, Name, Move1ID, Move2ID, Move3ID, Move4ID, Types etc.

Table 2: Moves
ID, Name, PP, Power, type etc.

然后您可以使用另一个表,其中包含这两个表之间的所有联接信息。您将有多行包含相同的 Pokemon ID 和多行包含相同的 Move ID,但 [Pokemon ID、Move ID] 组合将是唯一的。

Table 3: PokemonMoves
PkID, MoveID

然后您可以通过此关系表从 Pokemon 表到 Moves 表进行连接

SELECT * 
FROM Pokemon AS p
LEFT JOIN PokemonMoves AS pm on p.ID = pm.PkID
LEFT JOIN Moves AS m ON m.ID = pm.MoveID

SO 上有很多关于多对多关系的帖子,这看起来是一个很好的起点:Many to many relationship?

关于mysql - SQL - 如何插入同一列具有多个值的记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40096945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com