django用户模型公司的外键

时间:2014-08-30 15:21:27

标签: django django-models django-orm

我正在开始我的第一个django项目,并想知道哪种方法最适合在User&之间建立关系。 Company模型。

选项1 - 用户现有的django用户模型并创建用户个人资料模型

Class UserProfile(models.Model):
    user = models.OneToOneField(User)
    company = models.ForeignKey(Company)

选项2 - 创建自定义用户模型

Class MyUser(AbstractBaseUser):
    "all of the required user data -- left off for brevity"
    company = models.ForeignKey(Company)

我对基本用户模型没有任何问题,如果应用程序扩展到更大规模,我的关注点与性能更相关。我意识到选项1需要额外的数据库命中;但是,我喜欢使用UserProfile的灵活性,可以修改UserProfile以包含其他条件。

您更喜欢哪种选择,还是有更好的方法?

2 个答案:

答案 0 :(得分:2)

我决定创建UserProfile以提供额外的灵活性。虽然我们不知道应用程序将如何增长,但我们认为尽可能保持域名的灵活性非常重要。感谢您提供所有反馈。

答案 1 :(得分:0)

所以它基本上取决于应用程序的用例和范围,如果你知道你只关心用户nmae,电子邮件添加,传递主要然后我将使用django附带的内置用户配置文件。否则,我宁愿制作另一个UserProfile,因为您可以灵活地为项目添加更多参数和方法。