Rails 3暗示用户角色是不好的做法?

时间:2012-10-01 20:16:51

标签: ruby-on-rails-3 conventions user-roles

我有一个用户表,教师和学生之间有自我参照关系。目前,学生通过instructor_id foreign_key与他们的教师相关。学生将始终有一名教师,而教师永远不会是学生。

尽管如此,就授权而言,只要确定用户是否为学生,如果他们的instructor_id字段值是一个值,反之亦然?或者我应该明确定义用户角色?

1 个答案:

答案 0 :(得分:2)

首先,我试图找到一些方法使它不自我指涉。也许通过只创建一个人员表并且有一个单独的表是链接(users.instructor_id链接到instructors,其中包含字段instructor_iduser_idinstructors.instructor_idusers.instructor_id中使用,然后您可以查询SELECT * FROM users WHERE EXISTS (SELECT * FROM instructors WHERE instructors.user_id = users.user_id)以获取当前教师的列表),甚至最好的案例都有学生表和教师表。

如果你确定没有教师会有一个instructor_id,那么我相信你应该能够检查一个用户是否是该字段为null的学生(或默认值为-1)。

我建议重建你的表格结构是非自我指涉的,从长远来看,当教师被分配给另一位教师,或者学生因某种原因进行教学时,它会帮助你。