Django teacher students easy solution. Use separate tables, or permissions and groups? How? Other ideas?

隐身守侯 提交于 2020-01-11 04:06:06

问题


How would you cope with following problem? There are teachers, and students. Student can not view pages dedicated to teachers, and teachers can view pages dedicated to students. Teachers can have list of just students they teach. I want both teachers and students to use build in User to let them login.

I have following ideas:

Separate table for teacher and student with foreign key to build in user? - but the question is, can I easily render pages and distinguish who is teacher and who is student.

Permissions? Groups? and just one table Users? But to be honest I did not find the way how could I manage to achieve that what I mentioned at the beginning.

Would be grateful for any ideas, suggestions and comments, as I am thinking of it for HOURS!


回答1:


As a rough start:

User Table

  • user id (primary key)
  • details (name, address, phone --i.e. common to a user of the system whether student or teacher.)

Student Table

  • user id (foreign key relationship to user table)
  • any student specific details (enrolment date, homeroom, etc.)

Teacher Table

  • a user id (foreign key relationship to user table)
  • teacher specific stuff (seniority, salary, etc.)

Classes Table

  • a class id (primary key).
  • details of the class

Grades Table

  • a user id (foreign)
  • a class id (foreign) -> these two keys used for doing a grade query.
  • a grade

(if a student can take a class multiple times, and have multiple grades, the grades table will need to have its own key, possibly with sequence type to establish the order in which they received them).

Your page that is displaying the user can query the user table display that information, followed by their student or teacher specific information. If its possible for a student to be a teacher, then you're able to do that too.



来源:https://stackoverflow.com/questions/12494481/django-teacher-students-easy-solution-use-separate-tables-or-permissions-and-g

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!