最近我创建了一个成就系统,当某个事情成就时,将achievement1
这样的字段设置为int 1,问题是我们有超过100个字段achievement1
,{{1 },achievement2
等......
所以我的问题是如何优化这个?我正在考虑将一个字符串存储在一个字段中,对于未实现的成就将其存储为achievement3
0,将完成后的字符串存储为1。但是,这不会更糟,因为我必须每次更新一个非常长的字符串而不是1个整数吗?
我到处寻找答案,但我发现没有用。
答案 0 :(得分:1)
您可以创建一个存储每个用户成就的表(假设它们以某种方式与用户相关)。可以有UserID的外键,然后是成就编号的整数值。因此(15,1)表示ID为15的用户已完成Achievement1。如果您想查找用户已完成的所有成就,请执行以下操作:
SELECT achievementNumber FROM tblAchievements WHERE UserID = 15
。
“成就”的文字实际上是随意的,重要的是你如何使用它。