我正在开始我的第一个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以包含其他条件。
您更喜欢哪种选择,还是有更好的方法?
答案 0 :(得分:2)
我决定创建UserProfile以提供额外的灵活性。虽然我们不知道应用程序将如何增长,但我们认为尽可能保持域名的灵活性非常重要。感谢您提供所有反馈。
答案 1 :(得分:0)
所以它基本上取决于应用程序的用例和范围,如果你知道你只关心用户nmae,电子邮件添加,传递主要然后我将使用django附带的内置用户配置文件。否则,我宁愿制作另一个UserProfile,因为您可以灵活地为项目添加更多参数和方法。