Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
MySQL数据库-优化相同的多个字段_Mysql_Optimization_Field - Fatal编程技术网

MySQL数据库-优化相同的多个字段

MySQL数据库-优化相同的多个字段,mysql,optimization,field,Mysql,Optimization,Field,最近,我创建了一个成就系统,它将一个字段(如achievement1)设置为int 1。当某项成就完成时,问题是我们有100多个字段,分别是achievement1,achievement2,achievement3,等等 所以我的问题是如何优化这个?我在考虑在一个字段中存储一个字符串,该字段类似于1,0,1,0,1,0,1…0表示未完成的成就,1表示已完成的成就。但如果我每次都要更新一个很长的字符串而不是一个整数,那情况会不会更糟呢 我到处都在寻找答案,但没有找到任何有用的答案。您可以创建一个

最近,我创建了一个成就系统,它将一个字段(如
achievement1
)设置为int 1。当某项成就完成时,问题是我们有100多个字段,分别是
achievement1
achievement2
achievement3
,等等

所以我的问题是如何优化这个?我在考虑在一个字段中存储一个字符串,该字段类似于
1,0,1,0,1,0,1…
0表示未完成的成就,1表示已完成的成就。但如果我每次都要更新一个很长的字符串而不是一个整数,那情况会不会更糟呢


我到处都在寻找答案,但没有找到任何有用的答案。

您可以创建一个表来存储每个用户的成就(假设他们以某种方式与某个用户相关)。用户ID可能有一个外键,成就号可能有一个整数值。因此(15,1)将表示ID为15的用户已经完成了实现1。如果要查找用户已完成的所有成就,只需执行以下操作:

从UserID=15的tblachievents中选择achievementNumber


“成就”这个词真的很武断,重要的是你如何使用它。

像这样的话?[链接](uzduotys的意思是成就)因为我已经这样做了,我现在正在寻找一种更优化的方法,如果可能的话?更像这样:表中只有两列。一个用于成就的用户,一个用于成就的编号。