2013-02-24 63 views
0

最近我已经创建了一个成就系统设置像achievement1场为int 1时是取得了一些成绩,但问题是,我们有一个超过100个字段去achievement1achievement2achievement3和等等...MySQL数据库 - 优化相同的多个字段

所以我的问题是我如何优化这个?我正在考虑在一个字段中存储一个字符串,如果未完成的成就将会是1,0,1,0,1,0,1... 0,而完成的则是1。但是,这不会更糟,因为我必须每次更新一个非常长的字符串而不是1个整数?

我已经在各地寻找答案,但我发现没有用处。

回答

1

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

SELECT achievementNumber FROM tblAchievements WHERE UserID = 15

“成就”的文字确实是武断的,它就是你如何使用它的重要内容。

+0

所以像这样的东西? [链接] http://www.part.lt/img/f8e2c5b3692175f3dacd5b4e105bce7b549.png(uzduotys意味着成就) 因为我已经这样做了,我现在正在寻找一个更优化的方式来做到这一点,如果它实际上是可能的? – Eddy 2013-02-24 03:15:29

+0

更多类似这样的:http://jsfiddle.net/Nzqk8/你只会在表中有两列。一个用于成就的用户,另一个用于成就的数量。 – 2013-02-24 03:23:41