gpt4 book ai didi

php - 在两个表中都有信息会更好吗?或者创建第三张表?

转载 作者:行者123 更新时间:2023-11-29 03:55:28 25 4
gpt4 key购买 nike

我有一张 table GAMES 和另一张 PLAYERS。目前,每个“游戏”都有一个 players_in_game 列,但我在 PLAYERS 表中没有任何往复运动。由于此列是一个数组(玩家 ID #s 的逗号分隔列表),我认为让每个玩家的记录也包含他们所属游戏的列表可能会更好。另一方面,在两个单独的表中复制信息实际上可能需要更多的数据库调用。

从长远来看,一场游戏中的玩家人数不会超过 12 人(通常为 4-6 人),但可能会有大量游戏。

是否有一种好方法可以确定哪种方法效率更高?谢谢。

最佳答案

规范化通常是一件好事。表中的逗号分隔列表表明表迫切需要外键。如果您担心额外的查询,请查看 JOINING

dbo.games
+----+----------+
| id | name |
+----+----------+
| 1 | war |
| 2 | invaders |
+----+----------+

dbo.players
+----+----------+---------+
| id | name | game_id |
+----+----------+---------+
| 1 | john | 1 |
| 2 | mike | 1 |
+----+----------+---------+

SELECT games.name, count(players.id) as total_players FROM games INNER JOIN players ON games.id = players.game_id GROUP BY games.name;

Result:
+-----------+--------------+
| name |total_players |
+-----------+--------------+
| war | 2 |
| invaders | 0 |
+-----------+--------------+

旁注:Go Hokies :)

关于php - 在两个表中都有信息会更好吗?或者创建第三张表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2234057/

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