【问题标题】:Rails...Am I modeling this correctly?Rails ...我是否正确建模?
【发布时间】:2011-07-06 15:07:23
【问题描述】:

在我的申请中,有些课程有步骤。 (用户通过按顺序查看步骤继续完成课程)

但是有许多类型的步骤(测验、文本、视频..等)。在本例中,我将展示其中的 2 个步骤。

到目前为止,这是我的数据库/模型设计:

步骤

  • 身份证
  • step_type_id
  • client_id
  • 标题
  • 总结
  • 位置

关系

  • belongs_to:客户
  • belongs_to: step_type
  • has_one: step_quiz
  • has_one step_text

step_quizzes

  • 身份证
  • step_id
  • 说明
  • correct_to_pass
  • retakes_allowed
  • time_limit

关系

  • belongs_to: step
  • has_many: quiz_questions

step_texts

  • 身份证
  • step_id
  • 内容

关系

  • belongs_to: step

之前有人建议我这是一个多态关系,但我想我不明白它是怎么回事。我将其视为一种继承关系,其中子步骤类型从步骤表中继承其基本信息。这可以用不同的方式建模吗?

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

    似乎在这个例子中最好的方法是使用STI。多态关联更适合反向关系 - 例如。当有多个事物可能具有相同的步骤时(课程、研讨会等)。

    【讨论】:

    • 如果我之前的回答让你迷惑了,我也很抱歉,我没有完整的图片。
    • 但是数据的差异还不足以与 STI 配合使用吗?例如,文本步骤不会有 time_limit、retakes_allowed 或 correct_to_pass。也许我最好按照自己的方式对其进行建模。
    猜你喜欢
    • 2015-08-21
    • 2019-10-12
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多