Rails ……我是否正确建模?
在我的申请中,有一些课程有步骤。 (用户通过按顺序查看步骤继续学习课程)
但是有许多类型的步骤(测验,文本,video……等)。 在这个例子中,我将展示其中的两个步骤。
这是我目前的数据库/模型设计:
脚步
- ID
- step_type_id
- CLIENT_ID
- 标题
- 摘要
- 位置
关系 :
- belongs_to:客户
- belongs_to:step_type
- has_one:step_quiz
- has_one step_text
step_quizzes
- ID
- step_id的数据类型
- 说明
- correct_to_pass
- retakes_allowed
- 时限
关系 :
- belongs_to:step
- has_many:quiz_questions
step_texts
- ID
- step_id的数据类型
- 内容
关系 :
- belongs_to:step
之前有人向我建议这是一种多态关系,但我想我不知道它是怎么回事。 我将其视为inheritance关系,其中子步骤类型从步骤表inheritance其基本信息。 这可以用不同的方式建模吗?
似乎在这个例子中最好的方法是使用STI 。 多态关联对于反向关系更好 – 例如。 当有多个事情可以有相同的步骤(课程,研讨会,……)。