学生,教师,时期和维护之间的关系

时间:2016-10-24 14:27:41

标签: sql ruby-on-rails rails-models

我有用户模型和(老师,学生和原则)使用STI继承它

每个班级只有很多学生和一名教师。 每个学生都有很多课程。 每个班级都有很多学生

class Class < ApplicationRecord
  has_and_belongs_to_many:students
  belongs_to:teacher
  has_many:periods
end

class User < ApplicationRecord
  has_and_belongs_to_many:students
  belongs_to:teacher
  has_many:periods
end

class Teacher < User
  has_many:classes
end

class Student < User
  has_and_belongs_to_many:classes
  has_many:period
end

class Period < ApplicationRecord
  belongs_to:teacher
  belongs_to:student
end

每个班级都有很多时期。

如何为每个学生设置自己的出勤率? 我如何创建用户和班级之间的关系以及时间和出勤率?

class Attendance < ApplicationRecord
  ????????
end

1 个答案:

答案 0 :(得分:0)

教师1 - *班级

1级 - *学生

第1类 - *期间

学生1 - * tblStuPer

期间1 - * tblStuPer

tblStuPer 1 - * tblAttendence

期间表:

PeriodID,Day&amp;时间,例如['星期一','上午9点'],['星期三','3pm']。

tblStuPer表:

tblStuPerID,StudentID,PeriodID。

tblAttendence:

AttendenceID,Date,tblStuPer,isHere

这意味着连接表将存储:学生1(星期一上午9点​​periodid(x)),因为重复这一点,因此一个关注表可以存储实际日期,01/01/1901。 然后从那里可以加入班级(化学)和教师E先生。

不是说这是最有效的答案,但希望我的思考过程有所帮助。