用于为用户提供独特谜语的数据结构?

时间:2014-03-27 17:29:43

标签: database-design data-structures

所以我正在创建一个网站,其中一组用户同时尝试回答谜语,之后能够向网站提交谜语。

我想这样做,以便用户永远不会被给予相同的谜语两次。所以我想知道如何创建User.js类和Group.js类

User.js类需要一个数据结构来表示它从未见过的谜语。我们暂时将其称为RiddlesNotSeenByUser。

Group.js类需要能够将每个用户的所有RiddlesNotSeenByUser合并到一个数据结构中,让我们调用RiddlesNotSeenByGroup。

然后我将拥有一个庞大的谜语数据库,我将需要有效率 在数据库中找不到数据结构中的谜语RiddlesNotSeenByGroup。

谢谢!

1 个答案:

答案 0 :(得分:2)

您可能不想保留RiddlesNotSeen列表,因为如果您这样做,那么每次添加新用户时,您都必须使用所有现有的谜语填充其列表。每当添加一个新的谜语时,你必须更新每个用户。如果用户数量和谜语数量甚至相当大,那么您将会发现这非常昂贵。

你最好保留一个RiddlesSeen列表,并在每次用户看到一个新的谜语时更新它。然后,当您想要为用户选择一个新的谜语时,您将获得整个谜语列表,删除他所看到的谜语,并从结果中随机选择。数据库非常擅长这样做。