2011-09-10 95 views
0

這是我想要實現的。 我有一套50個不同的工作(我的意思是,士兵,法師,僧侶等)實現工作集合的最佳算法是什麼?

每個用戶每次完成一個任務後隨機獲得一張卡片。 所以在某些時候你可以有一個士兵和一個和尚,但一個法師會失蹤。 這意味着您的收藏會像

 
Soldier Yes 
Mage  No 
Monk  Yes 

在任何時候,你可以得到相同的卡(你可以有10名士兵,但對於您的收藏僅僅是一個是或否)

在任何時候,你可以刪除工作。但是你繼續「收集」工作 因此,如果你把一個士兵集合看起來像這樣

 
Soldier Yes 
Mage  No 
Monk  Yes 

如果你注意到,即使我沒有一個士兵現在。我已經「收集」了那份工作。

我在想什麼是在MySQL和PHP中實現這個最好的方法?

Mi想法現在是2 1.創建一個新的表格集合,併爲您獲得的每項工作保留一個記錄。 2.創建只有一個字段與管道作爲分隔符和內爆/爆炸結果

+0

爲90%,你的問題相關的(然後我錯過點),或者你只問在sql中如何做多對多的關係? –

回答

0

爲什麼不使用單個位掩碼列。

Soldier = 1,Mage = 2,Monk = 4

因此,如果你只有法師和僧侶的價值將是2 | 4 = 6

這樣,您可以稍後輕鬆添加不同的類,而無需更改模式。

0

除非您有嚴重的性能問題,否則單獨的表格應該沒問題。它有額外的好處,你可以稍後添加屬性,如果需要的話(例如:初學者/大師,經驗點等)。使用位掩碼並不靈活,你以後可能會遇到醜陋的數據庫方案。它也不允許你跨用戶快速查找,例如:如果你需要所有有戰士和僧侶工作的用戶。

0

我最終在我的表格中添加了一個名爲「deleted」的字段。 0 ==存在,1 ==刪除 這樣我就可以有遊戲中所有牌的故事。不過,它可能會疊加幾行。

您認爲如何?

它看起來像 http://apps.facebook.com/talesofm/jobs(如果你有工作,這將是彩色的,如果你沒有它,它會是黑色和白色)

相關問題