标题的措辞可能有点令人困惑。我有一个应用程序,其用户具有不同的权限级别(管理员和非管理员)。
我不确定以下哪种结构更可取:只需使用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表可能会变得昂贵。
可能不是在优化这个阶段,但我只是对最佳实践感到好奇。
答案 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/