首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django外键关系应该是用户建模还是对用户建模?

Django外键关系应该是用户建模还是对用户建模?
EN

Stack Overflow用户
提问于 2021-06-29 08:18:34
回答 1查看 161关注 0票数 1

我是新来的django,并试图建立一个电子商务网站的实践。有一个Cart模型,它目前有一个ForeignKeyUser。哪条路更有效率?

我应该创建一个UserProfile模型,它将一个购物车作为ForeignKey,还是应该保持这样呢?

我认为前者应该更快,因为当我将显示手推车给用户,它将必须搜索和过滤所有的车,如果我保持它是。但是,我正在看的教程正在设置它们的模型,其中Cart为用户提供了一个ForeignKey。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-06-29 13:10:37

我在注释中写了这篇文章,但结果却超过了允许的字符数。

回答你的问题:Can you explain how is it more efficient as it will have to search through all the carts to find the user's cart. Do websites with big database also have it set up like this?

是的,它们确实如此。如果将购物车作为FK添加到UserProfile中,那么它不应该更快,因为它只保存对cart实例的引用。您仍然必须转到购物车表并检索相关的行。您必须注意的是控制对数据库的查询数量。要跟踪这一点,您可以使用django-debug-toolbar,也可以使用shell调试它。

代码语言:javascript
复制
from django.db import connection
queries=connection.queries

print(f"QUERY: {len(queries)}")

然后检查查询的长度及其详细信息,以便进行调试,并使其更快。此外,尽可能使用select_relatedprefetch_related,这将大大减少查询的数量。

Django调试工具栏如下所示

当您单击SQL时,您将看到所有详细的查询,并能够看到重复的查询。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68174992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档