Django - 模型构建(用户配置文件或单独模型)

时间:2011-07-20 01:51:15

标签: mysql django models

标题的措辞可能有点令人困惑。我有一个应用程序,其用户具有不同的权限级别(管理员和非管理员)。

我不确定以下哪种结构更可取:只需使用User_Profile并添加管理字段或创建两个模型(一个用于管理员,一个用于管理员)

class User_Profile(models.Model):       
    user=models.ForeignKey(User, unique=True)
    employer=models.ForeignKey(Company,blank=True)
    admin=models.BooleanField(default=False)
    phone=models.CharField(blank=True)

这是否更适合为Admins创建一个单独的表,只是通过ForeignKeys链接到User和Employer?我的观点是检查每个用户的管理员状态,所以我担心一遍又一遍地查询一个大的User_Profile表可能会变得昂贵。

可能不是在优化这个阶段,但我只是对最佳实践感到好奇。

1 个答案:

答案 0 :(得分:1)

我实际上建议使用Django的内置用户权限,而不是其中任何一个选项: https://docs.djangoproject.com/en/dev/topics/auth/#methods

这是一个帮助您入门的快速教程: http://parand.com/say/index.php/2010/02/19/django-using-the-permission-system/