我是一名大学计算机科学专业二年级学生。我正在使用 php/mySQL 制作一个在线应用程序。这是我第一次使用 PHP 和 mySQL。不管怎样,我正在制作一个跟踪棒球比赛的应用程序。用户创建一个玩家团队并开始与另一个团队进行游戏,用户输入结果,同时应用程序对游戏进行评分并保留玩家统计数据。我正在设计数据库,希望有人能为我澄清:
主键- 我很确定我明白这是什么。基本上它是每一行的唯一标识符,用于区分每一行。
外键 - 现在我有一个“Players”表,还有一个“PlayerStats”表。如果我理解正确(我可能没有理解),“Players”表有一列“playerStatsId”,它是“PlayerStats”表的主键。这是可行的,因为每个玩家只有一个统计表。
没有 key ???- 好的,这是我的例子。我的应用程序的每个用户都应该能够向数据库添加任意数量的团队。他们只能编辑他们“拥有”的球队的比赛。我想我可以通过一个包含两列的表来实现这一点:“用户名”和“teamId”。然后我可以搜索表格并选出属于某个用户的团队。我觉得这不是答案,因为它看起来效率不高。有更好的办法吗?
我很感激任何帮助!谢谢!!
最佳答案
外键
PlayerStats 表中每个玩家只有 1 条记录吗?如果是这样,那么为什么不将统计数据放入“玩家”表中呢?
如果每个玩家有多个统计数据,通常我们会将统计数据分开到不同的表中。
示例:
Players
PlayerID Name
001 George
PlayerStats
PlayerID StatType Value
001 BattingAverage 0.300
001 RunsPerGame 2
在这种情况下,PlayerID 将是 PlayerStats 表上的外键。这种表有时被称为业务应用程序的“详细信息”表。
您的无键示例很好并且很常见。我不记得它叫什么了,类似于“关系表”。
关于mysql - 数据库新手 - 主键、外键、根本没有键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13169103/