【发布时间】:2015-07-23 13:21:51
【问题描述】:
我正在开发一个网站,人们可以在其中玩小游戏。在每场比赛结束时,用户将获得一个分数,我希望将其与时间戳一起存储在 MySQL 数据库中。这将使我能够以一种很好的方式进一步展示数据。
我使用 Facebook 登录系统,因此我目前有一个包含用户 ID、姓名和 Facebook ID 的表。目前我有一个看起来像这样的表:
ID------Name------UID
1 Bob 123123
2 Marley 23134
然后,对于每个用户,我需要这样的东西:
Game1Time Game1Score Game2Time Game2Score etc....
3292 400 10 7824
129 32 101 231
我查看了其他一些相关帖子,似乎人们普遍认为为每个用户设置一个表格是个坏主意,但对我来说,这似乎是最简单的方法。
我也可以这样做,将所有数据存储在一个表中:
ID------Name------UID-------Game1Time-----Game1Score----Game2Time-----Game2Score etc...
1 Bob 123123 3291, 129 400, 32 10, 101 7824, 231
2 Marley 23134
但是当人们玩很多相同的游戏时,这似乎可能会导致问题。
我觉得我错过了一些聪明的方法,所以如果你有任何建议,请告诉我。我对 SQL 还很陌生,所以我可能遗漏了一些愚蠢的东西
【问题讨论】:
-
查找数据库规范化。 User 表、Games 表,然后是 UserGames 表来存储 id 和时间和分数...
-
最好的办法是拥有一个具有多对多关系的关系数据库。这样,它将跨多个基于 ID 连接的表,并且在添加更多游戏时不会遇到问题。
-
感谢您的快速回答,我会立即调查这些
-
@sgeddes 数据库规范化似乎是要走的路。谢谢!