基于PHP的游戏 - 为每个用户提供自己的数据库

时间:2010-02-12 08:48:38

标签: php mysql

是否有可能拥有基于网络的PHP / mySQL游戏,其中每个用户都拥有自己的数据库,其中包含有关他/她帐户的数据。

这是一款单人游戏管理游戏,每个用户都需要拥有自己的数据库。或者至少,这就是我看到这个的方式。这是正确的解决方案,并且这将在服务器带宽等方面起作用。

您可以将其视为游戏的保存文件。每个用户都有一个savefile,他自己的数据库。游戏的基础是1个数据库中的所有商店。 savefile数据库只包含排名,生成的字符以及使其保存文件/游戏唯一的内容。

6 个答案:

答案 0 :(得分:9)

是否有可能:是的。但这是正确的解决方案:绝对不是。

假设您要更新表,使用您提出的方法,您必须修改数十亿个数据库,而不是仅修改一个。看到问题了?

答案 1 :(得分:7)

您应该阅读有关关系数据库的更多信息。然后再考虑一下。您不需要创建单独的数据库,也不需要单独的用户。您应该有一个users表,每个用户都有一个主键 id ,然后表示其他数据位的其他表各有一个所有者 userid 列(无论您想要命名它),每行都放置其所有者的ID。

例如,如果您想存储玩家的库存,您将拥有一个名为InventoryItems的表,以及列“id,userid,itemtypeid,numberOfItems”。 itemtypeid是ItemTypes表中行的ID,其中包含图像,名称,该类型项的统计信息等列。然后,用户库存中的每个项目在该表中都有一行。

这是非常基本的数据库设计,我认为你已经习惯于平面文件了。因此,我再次强烈建议您阅读有关数据库系统和关系数据库设计的更多内容,以学习一对多关系,多对多关系(通过链接表)等技术。在您阅读时,您可能会有很多“啊哈”的时刻,您会想到解决问题的新方法。

或者,你知道,回到平面文件。那也行啊......

答案 2 :(得分:0)

听起来非常不可能 - 而不是专门用于游戏。 每个用户的表格很奇怪,每个用户的列也是如此......

除非您的游戏类似于phpmyAdmin,否则每个用户只有一个数据库是不够的!

答案 3 :(得分:0)

虽然这可能适用于多达10个左右的用户,但对于200多个用户来说,解决方案会变得混乱且无法管理。

为什么不能在单个数据库中使用单独的行来存储不同玩家的详细信息?

下进行。

答案 4 :(得分:0)

也许你说错了。如果您想要一些本地存储,那么您可以在每个客户端计算机或DOM存储或SQLite数据库中拥有本地数据库。

答案 5 :(得分:-1)

您不希望为每个疯狂的用户设置数据库,您需要1个主数据库和一些从属数据库才能有效扩展。