gpt4 book ai didi

ruby-on-rails - rails 3.1,选择题考试,怎么设计?

转载 作者:搜寻专家 更新时间:2023-10-30 23:19:38 25 4
gpt4 key购买 nike

我正在构建多项选择题考试,这样更好,可以将每个选项存储到选项表中,并将它们链接到问题,或者只创建一个包含所有选项和问题文本的对象,并将其序列化存储到数据库中作为一个记录??

如果我选择序列化对象方式,我会为自己保存上千条属于问题的选择记录。

class Quiz < ActiveRecord::Base
has_many :choices
end

class Choice < ActiveRecord::Base
belongs_to :quiz
end

那么,应该考虑哪种方法呢??

最佳答案

使用单独的表格。在关系数据库中存储序列化数据几乎总是一个坏主意;如果您从一个干净的规范化架构开始,那么将来更改会容易得多(并且所有软件都会随着时间的推移而变化,尤其是“一次性快速破解”)。

在您的情况下,您希望将选项放在单独的表格中,以便您可以轻松回答“有多少人为问题 8 选择了选项 3?”之类的问题。或“哪些问题只有 2 个选择”。

拥有单独的表也使参照完整性变得更加容易。例如,您可以设置 taken_quizes,其中有许多 answers,每个有一个 answer_choices;然后您可以将 answer_choices 链接回 choices 以避免数据不一致。如果您在数据库中存储序列化数据结构,则参照完整性很难实现且成本非常高。

顺便说一句,您似乎忘记了问题类:测验有很多问题,每个问题都有很多选择。

关于ruby-on-rails - rails 3.1,选择题考试,怎么设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8103103/

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