因此,我将在接下来的2周内构建一个Web应用程序,旨在将音乐学生与音乐教练联系起来。
使用ActivereCord数据库的Ruby在Ruby上完成此操作
我试图以正确的关系计划我的数据库,并希望在进行前进之前要确保一切都很好。
我的想法是将user
到user
交互。
这将包括以下列:
- 名字(字符串(
- 姓氏(字符串(
- 位置(字符串(
- 移动(布尔(
- bio(文字(
- 电子邮件(字符串(
- 密码(字符串(
每个模型中的关联将是
- 班级学生
- HAS_MANY:老师,通过:: Tutorships
- has_many:instruments
然后
- 班级老师
- HAS_MANY:学生,通过:: Tutorships
- has_many:instruments
然后仪器表
- 仪器(字符串(
- skill_level(integer( *使用枚举中的枚举与初学者,中级&高级
- 模型将是(属于alss_to(:student/:thocther(
然后,用户之间的联接表将是一个指导表:
- 属于:学生
- 属于:老师
- has_many:课程
然后一个课表
- 属于:tutorship
所以,这就是我到目前为止所拥有的。我的问题是,当我在铁轨中设置迁移时,我会缺少桌子上的任何东西吗?
我认为我需要放置类似的 t.belongs_to :student
,但是由于它是user
到user
的关系,感觉会感到不安。
我在这里想念什么?我知道有些不对劲。
SQL数据库已高度归一化,但是当然,您可以将学生和老师ID复制到课程中,从而将学生和老师ID复制到教训中,因此,对于绩效提高,有一个很好的理由来做到这一点。<<<<<<<<<<
实际上,在某种情况下,这是一个好主意,想到一个老师生病,一个替代老师教授的一课。无需创建一个新的辅导,只需为一堂课分配另一个老师。
您缺少的东西当然是时间戳/日期。
您只需要在教导和仪器表中添加t.belongs_to :student
,而不是教师,如果是您想知道的话。
您许多人想添加一些状态列以区分活动/以前/...在学生和老师上