考勤跟踪应用中的迁移和模型

我想整理一个可以跟踪“用户”出席的应用程序(ruby on rails + mysql),但是,我正在努力解决如何将数据组织到表中的问题。 我很欣赏有关可能的表/迁移结构的建议。 以下是我迄今为止提出的建议:

出勤

date DATE user_id INT status INT 

从本质上讲,我希望(很像出勤登记)标记为“全天/半天或缺席”的“用户”。 我希望能够查看用户的出勤记录,可变期间(即过去30天,15天,3天等)

谢谢。

我会使用三种模式:日,用户和记录。

 class Day < ActiveRecord::Base has_many :records end class User < ActiveRecord::Base has_many :records end class Record < ActiveRecord::Base belongs_to :user belongs_to :day end 

Day显然会有一个日期字段,而Record会有一个状态字段来保存用户当天是否在场,缺席等。

像这样构造它允许您按用户查询,日期(包括范围),状态或三者的任意组合。

例如,计算用户的缺席:

 Record.where(:user_id => @user.id, :status => 'absent').count