如果我通过用户的three()
(user_id
)查询用户的信息,而不是创建string
模型并使用SQL关系将它们链接到其他模型,这是否是一个主要缺陷?
示例1:(Profile
存储在django会话中。)
user_id
注意:我将用户的个人资料信息存储在Auth0上。
示例2:({{1}存储在class Information(models.Model):
user_id = models.CharField(...)
...
# also applies for .filter() operations.
information = Information.objects.get(user_id=request.getUser['user_id'])
中。)
user_id
注意:使用此方法,“配置文件”将只有一个字段
Profile
。
在Django上,使用字符串而不是查询对象会影响检索项目的性能吗?
答案 0 :(得分:3)
正如Dirk所说的,性能不是问题。索引一列后,与其他因素相比,数据类型之间的性能差异应可忽略不计。这是related SO question,用于提供更多视角。
您应该注意的是防止重复数据的完整性,然后您必须自己维护它们的完整性,而不是依赖数据库中经过良好测试的完整性检查。
另一方面是,如果您的数据之间确实存在关联,则绝对应确保使用Django的relationships在模型中正确表示它们。否则,使用Django的ORM根本没有多大意义。祝你好运!