【问题标题】:Django teacher students easy solution. Use separate tables, or permissions and groups? How? Other ideas?Django老师学生轻松解决。使用单独的表,或权限和组?如何?其他想法?
【发布时间】:2012-09-19 12:13:23
【问题描述】:

您将如何应对以下问题? 有老师,也有学生。学生无法查看教师专用页面,教师可以查看学生专用页面。教师可以只列出他们教的学生。我希望教师和学生都使用内置用户让他们登录。

我有以下想法:

用外键为教师和学生建立单独的表来构建用户? - 但问题是,我能否轻松渲染页面并区分谁是老师和谁是学生。

权限?团体?只有一张表用户?但老实说,我没有找到如何实现我在开头提到的目标的方法。

如果有任何想法、建议和 cmets,我将不胜感激,因为我想了好几个小时!

【问题讨论】:

    标签: django django-models relational-database


    【解决方案1】:

    作为一个粗略的开始:

    用户表

    • 用户ID(主键)
    • 详细信息(姓名、地址、电话——即系统用户(无论是学生还是教师)共有的信息。)

    学生桌

    • 用户ID(与用户表的外键关系)
    • 任何学生的具体细节(入学日期、班主任等)

    教师桌

    • 用户 ID(与用户表的外键关系)
    • 教师具体资料(资历、薪水等)

    类表

    • 类 ID(主键)。
    • 课程详情

    成绩表

    • 用户 ID(外文)
    • 类 id(外文)-> 这两个键用于进行成绩查询。
    • 一年级

    (如果一个学生可以多次上课,并且有多个成绩,成绩表将需要有自己的键,可能有序列类型来确定他们收到它们的顺序)。

    显示用户的页面可以查询用户表显示该信息,然后是他们的学生或教师的特定信息。如果学生可以当老师,那你也可以。

    【讨论】:

    • 非常感谢您如此准确的回答!
    • 没问题。希望能帮助到你。它应该足够灵活,以适应您可能需要进行的任何自定义。如果您需要更细粒度的访问控制系统,还可以添加权限表(以用户 ID 为关键字)。
    • 非常感谢 John 的帮助:) Django 内置了具有权限的组,因此应该可以解决问题。顺便说一句,您如何看待学生与用户(以及教师与用户)的 1t1 关系,并使用用户 ID 作为主键?
    • 我认为这很好。唯一的额外考虑因素是老师也是学生的情况,或者学生后来成为老师的情况。使用用户 ID 作为系统的主键,您可以将其保密,并且像学生这样的表可以有一个额外的键(如“学生 ID”),它是“公共”的,同时仍保持与用户的外键关系表。
    最近更新 更多