我正在为Rails应用计划我的数据库架构,其中一部分涉及构建各种动态课程。架构看起来像这样:
我的问题是,虽然我希望“问题”和“片段”成为他们自己的模型,但我希望每节课对问题和片段的排序都是自己的。就像在两个不同的课程中,可能会遇到一些相同的问题和摘要,但是顺序不同。
在rails中执行此操作的最佳方法是什么?我在想,课程可以保留一组ID来跟踪顺序,但这似乎不是很常规。
这是否有标准?
谢谢!
答案 0 :(得分:1)
您需要一个中间表,该表在课程和问题之间以及课程和摘要之间具有has_many: through
关系。
class Lesson < ApplicationRecord
has_many :lesson_problems, dependent: :destroy
has_many :problems, through: :lesson_problems
end
class Problem < ApplicationRecord
has_many :lesson_problems, dependent: :destroy
has_many :lessons, through: :lesson_problems
end
class LessonProblem < ApplicationRecord
belongs_to :problems
belongs_to :lessons
end
在lesson_problems表中,将有一个名为order
的额外列。
课程和摘要也是如此。
可以找到详细信息here