0

该项目目前有3个表,一个用户一个竞赛和竞赛_用户。

这个想法是管理员可以创建比赛,用户可以参加比赛。我有比赛存储所有比赛详细信息和用户存储用户详细信息,我的competitions_users 只是存储来自比赛和用户的外国ID,以便它们可以链接,许多用户可以有许多比赛。

当我希望用户回答问题时,问题就出现了,我无法在比赛表中存储答案,因为这会产生大量重复数据,这对用户来说也是如此。我完全不确定在哪里存储它。我曾想过有一个名为 answers 的独立表格,但我不能确定如何将它与其他表格联系起来。

任何帮助将不胜感激

4

2 回答 2

2

我会说有一张answers桌子是要走的路。

我假设您将 ActiveRecord 用于您的模型,所以在我的脑海中,我会有类似的东西:

class Answer < ActiveRecord::Base
    belongs_to :user
    belongs_to :competition
end

您可能需要更多涉及的内容来将答案链接到特定问题等,但这可能会给出一般的想法。


以下是其他类可以适应这种情况的样子:

class Competition < ActiveRecord::Base
    has_and_belongs_to_many :users
    has_many :answers
    ...
end

class User < ActiveRecord::Base
    has_and_belongs_to_many :competitions
    has_many :answers
    ...
end
于 2013-07-29T08:06:36.967 回答
0

这完全取决于你。我会建议一个名为

答案:Question_ID(FK:competition.id),正确答案
USER_ANSWER:USER_ID,COM​​P_ID,QUES_NUM,WRITE/WRONG,USERS_ANSWER

为了简化,天空是极限。

于 2013-07-29T08:08:57.120 回答