2013-02-24 28 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