2014-08-30 70 views
1

我开始我的第一个django项目,并想知道哪种方法最适合于创建User & Company模型之间的关系。django用户模型外键公司

选项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的灵活性,可以修改它以包含其他标准。

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

+1

我会去创建UserProfile – levi 2014-08-30 15:31:26

+0

它更好地创建UserProfile。将来你可能想要在UserProfile中添加一些字段,你会很感激。 – alejoss 2014-08-31 00:08:37

回答

1

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

0

所以它基本上取决于应用程序的用例和范围,如果你知道你只关心用户名,电子邮件添加,主要传递,那么我会在建立的用户配置文件中随django一起去。否则,我宁愿制作另一个UserProfile,因为您可以灵活地为您的项目添加更多参数和方法。