实现作业集合的最佳算法是什么?

时间:2011-09-10 22:45:32

标签: php algorithm

这就是我想要实现的目标。 我有50个不同的工作(按类别我的意思是士兵,法师,僧侣等)

每个用户在完成任务时随机获取一张卡片。 所以在某些时候你可以有一个士兵和一个僧侣,但是一个法师会失踪。 这意味着您的收藏将如下所示

Soldier    Yes
Mage       No
Monk       Yes

在任何时候你都可以获得相同的卡(你可以有10名士兵,但你的收藏只是肯定或否定)

任何时候你都可以放弃这份工作。但你保持工作“收集” 因此,如果您放弃一名士兵,该集合将如下所示

Soldier    Yes
Mage       No
Monk       Yes

如果你注意到,即使我现在没有士兵。我已经“收集”了那份工作。

我在考虑在MySQL和PHP中实现这个的最佳方法是什么?

现在Mi的想法是2 1.创建一个新的表集合,并为每个工作保留一个记录。 2.仅使用管道作为分隔符和内爆/爆炸结果创建一个字段

3 个答案:

答案 0 :(得分:0)

为什么不使用单个位掩码列。

Soldier = 1Mage = 2Monk = 4

因此,如果您只有法师和僧侣,则值为2 | 4 = 6

通过这种方式,您可以在以后轻松添加不同的类,而无需更改架构。

答案 1 :(得分:0)

除非您有严重的性能问题,否则单独的表应该没问题。它具有额外的好处,您可以在以后根据需要向作业添加属性(例如:初学者/主人,经验点等)。使用位掩码并不灵活,您最终可能会遇到一个丑陋的数据库方案。它也不允许您对用户进行快速查找,例如:如果您需要所有有士兵和僧侣工作的用户。

答案 2 :(得分:0)

我最终在我的表格中添加了一个名为“已删除”的字段。 0 ==存在,1 ==已删除 这样我就可以了解游戏中所有牌的故事。但它可能会累加几行。

您怎么看?

它看起来像 http://apps.facebook.com/talesofm/jobs(如果你有工作,它将被着色,如果你没有它,它将是黑色和白色)