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

标签 mysql optimization field

最近我创建了一个成就系统,它设置了一个类似 achievement1 的字段。到 int 1 当某件事完成时,问题是我们有超过 100 个字段去 achievement1 , achievement2 , achievement3等等...

所以我的问题是如何优化它?我正在考虑将一个字符串存储在一个字段中,例如 1,0,1,0,1,0,1... 0 表示未实现的成就,1 表示已完成的成就。但这不是更糟吗,因为我每次都必须更新一个很长的字符串而不是 1 个整数?

我到处寻找答案,但没有发现任何有用的东西。

最佳答案

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

从 tblAchievements WHERE UserID = 15 中选择成就编号

“成就”的文字实际上是任意的,重要的是你如何使用它。

关于MySQL数据库-优化相同的多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15048190/

相关文章:

MySql 不正确的日期时间值

python - 更快的 numpy.polynomial?

php - 在 WooCommerce 3 中重新排序结帐字段

php - 如何使用超过 100 个 mysql 查询来加速页面?

MySQL 查询似乎忽略了存储函数中的 WHERE 语句的一部分

sql - Wordpress 和 SQL : Adding a custom field to all posts

mysql - 在 MySQL 上重新启用本地主机权限

mysql - 不重复行时插入?

mysql - 根据另外两个表更新列值(MySQL)

javascript - 需要优化的解决方案,用于隐藏选择框选项