那我该怎么说呢,我正在开发一个用户数据库,每个用户都有一些解锁功能。
所以我不确定这是管理这类数据的最佳方法,我是否应该为每个数据提供一个表,每个表都有可解锁的数量值,并将其链接到用户?或者,还有更好的方法?或者也许我可以使用2个数据库,一个用于用户,一个用于解锁?
老实说,我认为我的工作原理并不是最好的,因为如果我有1000个可解锁的,每个用户都必须链接到一个有1000种可能性的表。此外,如果我想添加新项目,我将不得不以这种方式更新大型数据库。
答案 0 :(得分:1)
修改强>
我回答的是一个非常糟糕的主意,它有效,但在关系数据库中被认为是一种不好的做法,因为你不想在一个字段中混搭项目,最好使用几个表来规范化。话虽如此,如果你使用noSql,你可以使用像我提出的那样但不使用连接字符串,你可以使用关联数组(json)结构来保存这些值。
在您的users表中,创建一个名为“unlockables”的列,或者您认为最好的列(将“text”作为数据类型),每当用户获得其中一个可解锁的时,您就将其添加到此字段中用“*”或任何你想要的东西分隔,如果这些解锁也有数量,你也可以添加第二个分隔符,如“ID +数量* ID +数量”,所以假设你有3个项目有以下ID(12,45) ,89)和这个等价的数量(1,6,2),你这样添加它(12 + 1 * 45 + 6 * 89 + 2)然后当你使用php检索这个值时你会爆炸两次字符串,首先使用“*”,然后使用“+”,你将有一个包含数据的数组,你也可以为此创建第二个表,但这是你的选择,这只是一个快速的方式去你想要的,我希望这可以帮到你一点点。