为多人游戏存储大量数据的最佳方式是什么?我有一个数据库来存储重要信息,例如登录信息和联系方式,但在记录库存项目和成就方面我很困难。我对数据库是相当新的,我能想到的唯一解决方案是为每个单独的项创建id并存储玩家拥有的项ID,或者在表中为每个单独的项/成就创建一列。 游戏中可能还有一个可收集的卡元素,需要解决方案来存储哪个 一个帐户拥有的卡。最好的方法是什么?
编辑:更具体一点,我会用卡片来解释它;假设该游戏包含300张独特牌,并且玩家在玩游戏时收集它们,我将如何存储玩家所拥有的牌的数据,记住这些牌不是以线性方式收集的IE玩家随机解锁牌并且可以拥有每张卡的多个副本。
编辑2:为了避免任何混淆,数据库不需要在每张卡上存储信息,只需要保存一个可以通过php访问的ID,以解锁登录时的项目。
答案 0 :(得分:1)
听起来你在谈论many-to-many关系(可能是几个)。
假设你有
Players
--------
player_id, name, etc etc
你想要添加
Achievements
--------
achievement_id, description, type,
并将它们与
绑在一起Player_achievements
--------
player_id, achievement_id
根据复杂程度,如果您有多种类型,您可能需要一个类型查找表(卡片,成就,收藏品等)或者您可能希望将每个表格放入自己的表格中一个是不同的。
编辑:看到你的编辑,你提到你可以只在数据库中存储一个ID,并保持与PHP代码中的300张卡相关的信息?不,我不会这样做。我会存储卡信息,以及数据库中的任何规则/权限/任何内容。然后,您可以添加,更改等,而无需更改代码。像:Cards
--------
card_id, description, bonus, damage, damage_type, i_have_no_idea, im_making_these_up
并将它们与
绑在一起Player_cards
--------
player_id, card_id, quantity
注意我向player_cards添加了数量,因为你提到一个玩家可以有多个。