学生,报名,课程和科目表之间的关系

时间:2017-03-07 19:03:06

标签: database ruby-on-rails-3 relational-database

我希望记录学生注册部分中的特定课程 ??? 因为一门课程分多讲。

class Student < ActiveRecord::Base
    has_many :enrolments
    has_many :courses, through: :enrolment
end
class course < ActiveRecord::Base
    has_many :enrolment
    has_many :students, through: :enrolment
    has_many :sections
end
class enrolment < ActiveRecord::Base
    belongs_to :students
    belongs_to :courses
end
class Section < ActiveRecord::Base
    belongs_to :courses
end

关系

Student.first.courses.first.sections

由于这种关系,我得到了多个部分。   但我想获得单个部分,其中学生注册特定的课程 ???    在这里我很困惑你觉得这个设计好吗?如果没有,请提供一些建议。

2 个答案:

答案 0 :(得分:1)

您需要一个桌子/班级(学生,课程,部分),其中关联学生在特定课程的特定部分注册,或者(注册,部分),其中一对满足注册学生注册时的关系在注册部分 - 您的评论可能不是您使用注册的方式&amp;类Class的部分。 (问问自己:你如何记录特定学生在课程的某个部分注册?)从学生,班级和学生开始部分;添加注册了学生课程部分。

答案 1 :(得分:0)

我认为这可以基于Laravel框架。

<强>表格

  • 学生
  • 课程

表格表示

学生表 id | name | email | ---|------|-------| 1 |Test |test@test.com|

课程表 id | name | ---|------| 1 |Course A|

章节表 id | name | ---|------| 1 |Section A|

<强>关系

  • 学生&lt; ---- [M:M] ----&gt;课程
  • 课程&lt; ---- [M:M] ----&gt;部分

关系表

  • Course_Student - course_id&amp; student_id(PK&amp; FK)
  • Course_Section - course_id&amp; section_id(PK&amp; FK)

Course_Student Table

course_id | student_id| ----------|-----------| 1 |1

Course_Section Table

course_id | section_id ----------|----------- 1 |1

现在你可以根据弱实体或中间表(根据Laravel)获得student_id,course_id和section_id。

希望这有助于你