Django 用户模型外键到公司

标签 django django-models django-orm

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

选项 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 以提供额外的灵活性。虽然我们不知道应用程序将如何增长,但我们认为保持我们的域尽可能灵活非常重要。感谢您的所有反馈。

关于Django 用户模型外键到公司,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25583894/

相关文章:

javascript - 单击按钮时 Ajax 从 Django 1.9 代码中获取新值

python - 如何从 Django 中的 ManyToManyField 获取对象数量?

python - Django GenericIPAddress 字段不验证输入

python - Django ORM : How can I sort by date and then select the best of the objects grouped by a foreign key?

python - 如何在 Python Django shell 中使用自定义模块中的函数

python - 使用 Django 继承区分父模型的子模型

python - Django ImportError : Could not import settings 'mysite.settings.local' (Is it on sys.路径?): No module named settings.本地

django 翻译模型选择

django - Django 是否关闭并删除 TemporaryUploadedFiles 和 InMemoryUploadedFiles?

django - 如何创建一个 Django 自定义字段来存储 MYSQL DATETIME(6) 并在 Django/MySQL 中启用小数秒(毫秒和或微秒)?