gpt4 book ai didi

Rails 3 应用程序中的 mysql 数据库结构替代方案

转载 作者:行者123 更新时间:2023-11-29 00:56:33 25 4
gpt4 key购买 nike

在使用 mysql 数据库的 Rails 3 应用程序中,我正在创建一个学术测试。以下是测试特征。

  • 多项选择
  • 93 个问题仅由与所选答案相关的整数组成
  • 学生将多次重考并更改答案
  • 在重考时,之前的答案将重新加载到页面、更改,然后再次存储。
  • 每页将有 10 个问题
  • 完成每个页面后,应保存回复。这将为不必一次完成的测试提供便利。
  • 除了“下一页”按钮,还有一个“上一页”按钮

我有几个问题:

我应该为每个答案创建一个数据库记录来存储 student_id、question_id 和答案吗?或者...为每个学生创建一个数据库记录,其中包含 student_id 和每个问题答案的所有字段?

问题不会一成不变。根据我们的结果,我们计划修改问题。我们将从测试中删除一些问题,但保留问题和答案以供统计研究。因此,这意味着我们将创建具有新 ID 的新问题。我们必须小心地将当前问题与适当的答案配对。在我看来,最可靠的方法是对每一页进行硬编码,而不是在一系列问题和数据中来回循环。你同意还是不同意?

谢谢。

最佳答案

  1. 我肯定会为每个答案创建一个数据库记录。这样,添加或删除问题都没有关系。答案仍将与正确的用户和问题相关联。

  2. 我不明白为什么您的页面应该是静态的。您可以有一个问题模型,其中有一个字段指示问题是否处于事件状态。您甚至可以这样做以获得可能的答案。然后只显示动态激活的问题和答案。

我会这样建模:

class User < ActiveRecord::Base
has_many :user_answers
end

class Question < ActiveRecord::Base
has_many :user_answers
has_many :answers
end

class Answer < ActiveRecord::Base
has_many :user_answers
belongs_to :question
end

class UserAnswer < ActiveRecord::Base
belongs_to :user
belongs_to :question
belongs_to :answer
end

关于Rails 3 应用程序中的 mysql 数据库结构替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5857814/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com