跟踪存在
keep track of presence
我正在尝试找到一种方法来跟踪学生课程的存在(和缺席)。主要问题是他们提前支付了一系列的 10 或 30 节课,一旦完成就可以支付新的系列。
这样做的最佳解决方案是什么?
我会有两张看起来有点像那样的桌子
存在
编号
user_id
lesson_id
缺席
编号
user_id
lesson_id
原因
我正在考虑在两个表上添加一个布尔值列,该列在系列完成后为真(类似于书签)。然后,当我访问数据库时,我的查询将针对每个 user_id,计算在最后一个真值(如果有的话)之后有多少条记录。
我觉得这不是个好策略,但我找不到其他方法。
首先,你需要一个User_Lesson_Series table:
User_Lesson_Series
- id
- user_id
- number_of_lessons_paid_for
- payment_date
- number_of_lessons_remaining
其次,P.Salmon 建议 出席人数 table(而不是 出席人数 table 和一个 缺席 table) 是一个很好的:
出席人数
- id
- lesson_id
- user_lesson_series_id
- absence_flag
- absence_reason
第一次向User_Lesson_Series插入记录时,设置number_of_lessons_remaining为相同的值作为 number_of_lessons_paid_for.
每次您在 出勤 table 中记录学生的出勤(或 non-attendance)时,您还应该在 table 中更新该记录的父行=26=]User_Lesson_Series table,将 number_of_lessons_remaining 减 1.
如果 User_Lesson_Series 记录有 number_of_lessons_remaining = 0,那么你不应该再允许 出勤 记录要写出 user_lesson_series_id。相反,您应该要求为新的用户课程系列付费,从而需要生成新的 User_Lesson_Series 记录。
后续 出勤 记录将具有新 User_Lesson_Series[ 的 user_lesson_series_id =56=].
我可能会做这个 student_lesson table:
student_lesson (student_id, lesson_id, status_id, absence_reason)
加上一个状态 table 用于打开、出席、缺席状态。
一旦学生支付了接下来的 n 节课的费用,您就会在 student_lesson table 中创建 n 行。当一节课结束时,您将状态更新为参加或缺席。
通过 student_id 和 status_id 上的索引,您可以快速查看学生还有多少开放课程。
我正在尝试找到一种方法来跟踪学生课程的存在(和缺席)。主要问题是他们提前支付了一系列的 10 或 30 节课,一旦完成就可以支付新的系列。
这样做的最佳解决方案是什么?
我会有两张看起来有点像那样的桌子
存在
编号
user_id
lesson_id
缺席
编号
user_id
lesson_id
原因
我正在考虑在两个表上添加一个布尔值列,该列在系列完成后为真(类似于书签)。然后,当我访问数据库时,我的查询将针对每个 user_id,计算在最后一个真值(如果有的话)之后有多少条记录。
我觉得这不是个好策略,但我找不到其他方法。
首先,你需要一个User_Lesson_Series table:
User_Lesson_Series
- id
- user_id
- number_of_lessons_paid_for
- payment_date
- number_of_lessons_remaining
其次,P.Salmon 建议 出席人数 table(而不是 出席人数 table 和一个 缺席 table) 是一个很好的:
出席人数
- id
- lesson_id
- user_lesson_series_id
- absence_flag
- absence_reason
第一次向User_Lesson_Series插入记录时,设置number_of_lessons_remaining为相同的值作为 number_of_lessons_paid_for.
每次您在 出勤 table 中记录学生的出勤(或 non-attendance)时,您还应该在 table 中更新该记录的父行=26=]User_Lesson_Series table,将 number_of_lessons_remaining 减 1.
如果 User_Lesson_Series 记录有 number_of_lessons_remaining = 0,那么你不应该再允许 出勤 记录要写出 user_lesson_series_id。相反,您应该要求为新的用户课程系列付费,从而需要生成新的 User_Lesson_Series 记录。
后续 出勤 记录将具有新 User_Lesson_Series[ 的 user_lesson_series_id =56=].
我可能会做这个 student_lesson table:
student_lesson (student_id, lesson_id, status_id, absence_reason)
加上一个状态 table 用于打开、出席、缺席状态。
一旦学生支付了接下来的 n 节课的费用,您就会在 student_lesson table 中创建 n 行。当一节课结束时,您将状态更新为参加或缺席。
通过 student_id 和 status_id 上的索引,您可以快速查看学生还有多少开放课程。