1

那么我该怎么说呢,我正在处理一个用户数据库,每个用户都会有一些解锁能力。

所以我不确定管理这些数据的最佳方法是什么,我是否应该有一个包含每个可解锁对象和一个数量值的表,并将其链接到用户?或者,还有更好的方法?或者也许我可以使用 2 个数据库,一个用于用户,一个用于可解锁?

老实说,我认为我对它如何工作的想法并不是最好的,因为如果我有 1000 个可能的可解锁项,则每个用户都必须链接到具有 1000 个可能性的表。此外,如果我想添加新项目,我将不得不以这种方式更新大型数据库。

4

1 回答 1

1

编辑

我的回答是一个非常糟糕的主意,它可以工作,但在关系数据库中被认为是一种不好的做法,因为您不想在一个字段中混搭项目,最好使用多个表来规范化。话虽如此,如果您使用的是 noSql,您可以使用我建议的方法,但您可以使用关联数组(json)结构来保存这些值,而不是使用连接字符串。


在您的用户表中,创建一个名为“unlockables”的列,或者您认为最好的列(将“text”作为数据类型),每次用户获得其中一个可解锁项时,您将其添加到此字段中,以分隔“*”或任何您想要的,如果这些可解锁物品也有数量,您还可以添加第二个分隔符,例如“ID+Quantity*ID+Quantity”,假设您有 3 个具有以下 ID 的物品 (12,45,89)和这个等量的数量(1,6,2),你像这样添加它(12+1*45+6*89+2)然后当你使用php检索这个值时你会爆炸字符串两次,首先使用“*” ,然后使用“+”,您将拥有一个包含数据的数组,您也可以为此创建第二个表,但这是您的选择,这只是满足您想要的快速方法,我希望这可以帮助你一点。

于 2012-12-26T22:11:33.520 回答