gpt4 book ai didi

mysql - 多表数据库设计

转载 作者:行者123 更新时间:2023-11-29 14:06:51 25 4
gpt4 key购买 nike

我有一个网站,在其中显示体育运动员及其统计数据的列表。用户可以注册并创建一个由这些玩家组成的团队,我可以在其中汇总和分析团队统计数据。我想让每个用户能够从列表中“划掉”玩家(但不将其从数据库中删除),并在需要时将已划掉的玩家恢复到列表中。被划掉或未划掉的球员需要保存在数据库中,以便当用户返回站点时他们的列表被保存。

这些是我目前拥有的表格:

Players Table (COLS: Name, Team, Position, Stats, etc.)
Users Table (COLS: User ID, Name, Email, etc.)
Teams Table (COlS: User ID, 1, 2, 3, etc.)

我很确定有更好的方法来将信息存储在团队表中,其中有一列用于用户 ID,然后有 30 列(编号为 1-30),其中存储了玩家姓名和他所在的位置在单元格中选择(采用此格式的玩家姓名/位置)。一个团队最多可包含 30 名玩家。

我想我需要一个“可用表”来存储哪些玩家被哪些用户划掉。考虑到用户可以从列表中删除最多 600 名玩家,我不确定最好的方法是什么。

任何建议将不胜感激,我对处理数据库完全陌生,而且我似乎遇到了困难。

谢谢!

最佳答案

您可能应该从球队表中删除球员数据,并为球员和球队数据设置一个联接表。

所以你最终会得到

Teams Table (Cols: ID, User ID, Team Name)
Team_Players Table (Cols: Team_ID, Player_ID, Position, Active)

然后,您可以通过在 Team_Players 上运行查询来获取哪些玩家属于哪个团队,并检查他们是否活跃。

我没有添加 ID 字段,因为 Team_ID 和 Player_ID 的连接是唯一的,可以用作此表的键。

关于mysql - 多表数据库设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14208411/

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