Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MYSQL多整数';他在一排_Mysql_Database - Fatal编程技术网

MYSQL多整数';他在一排

MYSQL多整数';他在一排,mysql,database,Mysql,Database,我正试图找出在数据库中存储某些数据的最佳方法。我计划加入3个不同的表格 users table fighters table moveset table 在fighters表中,我有一行“moveset”,我试图找出一种方法,将moveset表中的move_id与moveset行下的fighters表中的move_id关联起来,这样每个战斗机都可以列出属于他们的一系列动作 前 战机桌上有 moveset表已被删除 需要将多个move_id放入表中的moveset行 有关于如何在mysql中正确

我正试图找出在数据库中存储某些数据的最佳方法。我计划加入3个不同的表格

users table
fighters table
moveset table
在fighters表中,我有一行“moveset”,我试图找出一种方法,将moveset表中的move_id与moveset行下的fighters表中的move_id关联起来,这样每个战斗机都可以列出属于他们的一系列动作

战机桌上有

moveset表已被删除

需要将多个move_id放入表中的moveset行

有关于如何在mysql中正确设置的帮助吗?

您需要“多对多”关系

要存储此信息,最好的方法是创建一个关联表,如果两个表都相关,则该表具有键:

fighter_moves
-------------
id
fighter_id
move_id

您甚至可以添加其他描述关系的非键列,称为关联数据。例如,
speed
定义战斗机移动的速度。

因此基本上创建4个表。3我有一个以上的详细信息,1个通过id将它们联系在一起?是的。这是表示多对多的唯一(理智的)方法,这就是你所拥有的。你的设计很好。但如果我有500多个动作和1000多架战斗机,而每架战斗机有50-100个动作,那可能会有问题,不是吗?不,没问题。另一个选项是,如果您不需要战斗机移动
id
列,则将
fighter\u id
move\u id
设置为战斗机移动表的复合主键(这将免费作为唯一约束+索引)因此,无论我做什么,我都必须一遍又一遍地将每个动作与每个战斗机关联起来,而不是在MYSQL中使用“类似数组”或类似的东西将多个动作链接到数据库中的一个战斗机上?如果“一组动作”具有合理的重用性,你有这个概念吗?像一个“移动配置文件”,可以用来分配一个或多个航班作为一个单一的东西?
move_id,
move_name,
move_damage
fighter_moves
-------------
id
fighter_id
move_id